在CentOS上配置Golang日志系统可以通过标准库 log
包或者第三方日志库(如 logrus
、zap
等)来实现。以下是详细步骤和示例代码:
log
包创建日志文件: 首先,创建一个日志文件用于存储应用程序的日志信息。
touch /var/log/myapp.log
设置日志输出:
在你的Golang应用程序中,使用 log.SetOutput
函数来设置日志的输出目标。
package main
import (
"log"
"os"
)
func main() {
// 打开日志文件
logFile, err := os.OpenFile("/var/log/myapp.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
log.Fatalf("error opening log file: %v", err)
}
defer logFile.Close()
// 设置日志输出到文件
log.SetOutput(logFile)
// 设置日志前缀
log.SetPrefix("myapp: ")
// 设置日志标志
log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
// 记录日志
log.Println("Starting myapp...")
log.Printf("This is a test log entry with a number: %d\n", 42)
log.Println("Ending myapp...")
}
运行应用程序: 编译并运行你的Golang应用程序。
go build -o myapp main.go
./myapp
查看日志文件:
使用 tail
命令查看日志文件。
tail -f /var/log/myapp.log
logrus
安装 logrus
库:
go get github.com/sirupsen/logrus
配置和使用 logrus
:
package main
import (
"github.com/sirupsen/logrus"
"os"
)
func main() {
// 创建一个日志文件
logFile, err := os.OpenFile("/var/log/myapp.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
logrus.Fatalf("error opening log file: %v", err)
}
defer logFile.Close()
// 设置日志输出到文件
logrus.SetOutput(logFile)
// 设置日志级别
logrus.SetLevel(logrus.DebugLevel)
// 设置日志格式
logrus.SetFormatter(&logrus.JSONFormatter{})
// 记录日志
logrus.WithFields(logrus.Fields{
"animal": "walrus",
"size": 10,
}).Info("A group of walrus emerges from the ocean")
}
运行应用程序: 编译并运行你的Golang应用程序。
go build -o myapp main.go
./myapp
查看日志文件:
使用 tail
命令查看日志文件。
tail -f /var/log/myapp.log
为了避免日志文件过大,可以使用 logrotate
工具进行日志文件轮转。
安装 logrotate
:
sudo yum install logrotate
创建 logrotate
配置文件:
/path/to/your/logfile {
daily
rotate 7
compress
missingok
notifempty
}
将配置文件添加到 crontab
:
echo "* * * * * /usr/sbin/logrotate /path/to/your/logrotate.conf" | crontab -
通过以上步骤,你可以在CentOS系统上配置Golang日志系统,并根据实际需求选择合适的日志库和配置方式。