发布于2026-07-17 阅读(0)
扫一扫,手机访问
在CentOS上搭建Golang日志系统,说白了就是选一个趁手的日志库,然后把它接入你的项目。市面上常用的方案无非就是logrus、zap、zerolog这几款,它们各有侧重,但今天咱们以logrus为例,走一遍完整的集成流程。

先别急着写代码,得确保机器上已经装好了Go环境。如果还没装,操作起来也不复杂:
# 安装依赖包
sudo yum install -y wget git
# 下载Golang安装包
wget https://golang.org/dl/go1.17.6.linux-amd64.tar.gz
# 解压安装包
sudo tar -C /usr/local -xzf go1.17.6.linux-amd64.tar.gz
# 设置环境变量
echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc
source ~/.bashrc
# 验证安装
go version
跑完这几步,用go version确认一下,看到版本号就说明环境就绪了。
新建一个目录,比如my-logging-project,然后初始化模块:
mkdir my-logging-project
cd my-logging-project
go mod init my-logging-project
用go get把logrus拉下来:
go get github.com/sirupsen/logrus
创建一个main.go文件,把下面的代码放进去。这段代码演示了如何设置日志级别、格式化输出以及记录不同级别的日志:
package main
import (
"github.com/sirupsen/logrus"
)
func main() {
// 设置日志级别
logrus.SetLevel(logrus.DebugLevel)
// 创建一个新的日志实例
logger := logrus.New()
// 设置日志格式为JSON格式
logger.SetFormatter(&logrus.JSONFormatter{})
// 记录不同级别的日志
logger.Debug("This is a debug message")
logger.Info("This is an info message")
logger.Warn("This is a warning message")
logger.Error("This is an error message")
// 记录带有字段的日志
logger.WithFields(logrus.Fields{
"animal": "walrus",
"size": 10,
}).Info("A group of walrus emerges from the ocean")
}
在项目目录下执行go run main.go,正常情况下你会看到类似下面的输出——每条日志都带时间戳、级别和消息,而且最后那条还额外设上了animal和size字段:
time="2023-04-01T12:34:56Z" level=debug msg="This is a debug message"
time="2023-04-01T12:34:56Z" level=info msg="This is an info message"
time="2023-04-01T12:34:56Z" level=warn msg="This is a warning message"
time="2023-04-01T12:34:56Z" level=error msg="This is an error message"
time="2023-04-01T12:34:56Z" level=info msg="A group of walrus emerges from the ocean" animal=walrus size=10
默认情况下日志是输出到标准输出,但实际项目中往往需要写到文件里。下面的代码演示了如何将日志重定向到app.log文件:
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)
// 创建一个新的日志实例
logger := logrus.New()
// 设置日志格式为JSON格式
logger.SetFormatter(&logrus.JSONFormatter{})
// 记录不同级别的日志
logger.Debug("This is a debug message")
logger.Info("This is an info message")
logger.Warn("This is a warning message")
logger.Error("This is an error message")
}
运行这个程序后,所有日志都会被写入app.log文件,而不是刷在终端屏幕上。当然,你也可以根据实际需求进一步调整输出格式、日志轮转或者添加自定义Hook——logrus的扩展性相当不错。
至此,在CentOS上集成Golang日志系统的核心步骤就走完了。从环境搭建到代码编写,再到输出配置,整个链路清晰干脆。剩下的就是把它嵌入你自己的业务逻辑里,按需调整日志级别和字段,让日志真正成为你排查问题的利器。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8