温馨提示×

golang日志输出在centos如何设置

小樊
39
2026-01-07 22:01:33
栏目: 编程语言

在 CentOS 系统中,你可以使用 Golang 的标准库 log 来输出日志。为了更好地控制日志输出,你可以使用第三方库,例如 logruszap。这里我将为你提供使用 logrus 的示例。

首先,确保你已经安装了 Golang。然后,通过以下命令安装 logrus

go get github.com/sirupsen/logrus

接下来,创建一个名为 main.go 的文件,并添加以下代码:

package main

import (
	"github.com/sirupsen/logrus"
	"os"
)

func main() {
	// 设置日志输出格式为 JSON
	logrus.SetFormatter(&logrus.JSONFormatter{})

	// 设置日志输出级别
	logrus.SetLevel(logrus.InfoLevel)

	// 设置日志输出到文件
	file, err := os.OpenFile("logs.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
	if err == nil {
		logrus.SetOutput(file)
	} else {
		logrus.Info("Failed to log to file, using default stderr")
	}

	// 输出日志
	logrus.Info("This is an info log")
	logrus.Warn("This is a warning log")
	logrus.Error("This is an error log")
}

运行程序:

go run main.go

程序将在当前目录下创建一个名为 logs.log 的文件,并将日志输出到该文件中。

如果你想将日志输出到 syslog,可以使用第三方库 logrus-syslog。首先安装库:

go get github.com/sirupsen/logrus-syslog

然后修改 main.go 文件,添加以下代码:

package main

import (
	"github.com/sirupsen/logrus"
	"github.com/sirupsen/logrus-syslog"
	"os"
)

func main() {
	logrus.SetFormatter(&logrus.JSONFormatter{})
	logrus.SetLevel(logrus.InfoLevel)

	sysLog, err := syslog.New(syslog.LOG_INFO, "golang-app")
	if err != nil {
		logrus.Info("Failed to connect to syslog, using default stderr")
	} else {
		logrus.SetOutput(sysLog)
	}

	logrus.Info("This is an info log")
	logrus.Warn("This is a warning log")
	logrus.Error("This is an error log")
}

运行程序:

go run main.go

程序将日志输出到 CentOS 的 syslog 中。你可以使用 journalctl 命令查看日志:

journalctl -u golang-app.service

注意:如果你想将日志输出到特定的 syslog 服务,你可能需要修改 /etc/rsyslog.conf/etc/sysconfig/syslog 文件,并重启 rsyslog 服务。

0