在 CentOS 上“读 Golang 日志”通常分几种情况,下面按最常见场景给你讲清楚。
Golang 本身不会自动生成日志文件,日志位置取决于你程序怎么写:
log.Println("hello")
在 CentOS 上:
log.SetOutput(os.OpenFile("/var/log/myapp.log", ...))
常见路径:
/var/log/xxx.log/opt/xxx/logs/xxx.log./app.log常见库:
loglogruszapzerolog位置同样由配置决定。
journalctl -u myapp.service -f
常用:
journalctl -u myapp.service -n 100 # 最近100行
journalctl -u myapp.service --since "2024-01-01"
tail -f /var/log/myapp.log
查看历史:
less /var/log/myapp.log
grep ERROR /var/log/myapp.log
docker logs -f 容器名
2024/01/01 12:00:00 main.go:20: something happened
含义:
时间 文件:行号 内容
{"level":"error","msg":"db failed","time":"2024-01-01T12:00:00Z"}
可用:
jq '.msg' log.json
# 看 golang 进程
ps -ef | grep myapp
# 看端口
netstat -tunlp | grep 8080
# 看 CPU / 内存
top
你可以告诉我:
我可以直接给你对应命令或配置示例。