发布于2026-07-24 阅读(0)
扫一扫,手机访问
在CentOS上搭建Golang日志系统,这事儿其实没那么复杂。跟着下面的步骤走,很快就能搞定。

得先确认一下系统里有没有装好Golang。如果还没装,一行命令搞定:
sudo yum install golang
接下来,创建一个项目目录,然后初始化一个Go模块:
mkdir myapp
cd myapp
go mod init myapp
日志库的选择很关键。Go生态里,logrus和zap是两员大将,都很成熟。这里以logrus为例:
go get github.com/sirupsen/logrus
在项目目录下创建main.go,把下面的代码放进去:
package main
import (
"github.com/sirupsen/logrus"
)
func main() {
// 设置日志级别
logrus.SetLevel(logrus.DebugLevel)
// 设置日志格式为JSON
logrus.SetFormatter(&logrus.JSONFormatter{})
// 记录不同级别的日志
logrus.Info("This is an info message")
logrus.Warn("This is a warning message")
logrus.Error("This is an error message")
// 记录带有字段的日志
logrus.WithFields(logrus.Fields{
"animal": "walrus",
"size": 10,
}).Info("A group of walrus emerges from the ocean")
}
这段代码演示了如何设置日志级别、格式,以及记录不同级别的日志。日志库还支持带上自定义字段,方便排查问题。
在项目目录下直接运行:
go run main.go
控制台里就能看到JSON格式的日志输出了。
更常见的是把日志输出到文件里,方便持久化存储和后续分析。只需要创建一个文件,然后设置SetOutput即可:
package main
import (
"github.com/sirupsen/logrus"
"os"
)
func main() {
// 创建或打开日志文件
file, err := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
logrus.Fatal(err)
}
defer file.Close()
// 设置日志输出到文件
logrus.SetOutput(file)
// 设置日志级别
logrus.SetLevel(logrus.DebugLevel)
// 设置日志格式
logrus.SetFormatter(&logrus.JSONFormatter{})
// 记录日志
logrus.Info("This is an info message")
}
日志系统搭建好之后,还需要考虑怎么管理和监控。这里推荐两个方案:ELK堆栈和Prometheus。
ELK(Elasticsearch, Logstash, Kibana)是经典的日志收集分析方案。具体步骤如下:
安装Elasticsearch:
sudo yum install elasticsearch
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
安装Logstash:
sudo yum install logstash
sudo systemctl start logstash
sudo systemctl enable logstash
安装Kibana:
sudo yum install kibana
sudo systemctl start kibana
sudo systemctl enable kibana
配置Logstash:编辑/etc/logstash/conf.d/logstash.conf,添加上输入和输出插件的配置。
配置Golang应用:修改应用的日志输出,让它把日志发送到Logstash。
如果更关注监控指标,Prometheus是个好选择:
安装Prometheus:
sudo yum install prometheus
sudo systemctl start prometheus
sudo systemctl enable prometheus
配置Prometheus:编辑/etc/prometheus/prometheus.yml,添加Golang应用的监控目标。
安装Golang Prometheus客户端库:
go get github.com/prometheus/client_golang/prometheus
go get github.com/prometheus/client_golang/prometheus/promhttp
编写Prometheus监控代码:在Golang应用中添加相应的监控指标。
通过以上步骤,就能在CentOS上搭建一个功能完善的Golang日志系统。后续还能根据实际需求,灵活地扩展和优化。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8