选择日志库:使用标准库log
或第三方库(如logrus
、zap
),支持结构化日志、日志级别配置及输出到文件等功能。
logrus
):import "github.com/sirupsen/logrus"
log := logrus.New()
log.SetLevel(logrus.DebugLevel)
log.SetFormatter(&logrus.JSONFormatter{})
log.WithFields(logrus.Fields{"key": "value"}).Info("日志信息")
配置日志输出:将日志输出到文件并设置轮转(如使用lumberjack
库),避免日志文件过大。
import "gopkg.in/natefinch/lumberjack.v2"
log.SetOutput(&lumberjack.Logger{
Filename: "/var/log/app.log",
MaxSize: 10, // MB
MaxBackups: 3,
Compress: true,
})
查看系统日志:
journalctl
查看systemd服务日志(支持按服务、时间段过滤):sudo journalctl -u <服务名> --since "2025-01-01" # 查看特定服务日志
sudo journalctl -f # 实时查看日志
/var/log
目录):cat /var/log/syslog # 系统通用日志
grep "error" /var/log/auth.log # 搜索认证错误
分析日志:
grep
搜索关键字、awk
提取字段、sed
替换文本。ELK Stack
(日志收集+分析+可视化)、Logwatch
生成报告。关联应用与系统日志:
调试工具辅助:
Delve
调试器实时查看变量和调用栈。pprof
分析性能瓶颈,辅助定位慢请求等问题。关键日志路径:
/var/log/syslog
、/var/log/auth.log
、/var/log/dmesg
。/var/log/app.log
)。