在 CentOS 系统中,你可以使用 Golang 的标准库 log 来输出日志。为了更好地控制日志输出,你可以使用第三方库,例如 logrus 或 zap。这里我将为你提供使用 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 服务。