在 Debian 上“开启 Golang 日志”通常有两种理解,我分别说明,你可以按需选择:
假设你有一个编译好的 Go 程序 /opt/myapp/myapp
sudo vim /etc/systemd/system/myapp.service
内容示例:
[Unit]
Description=My Go App
After=network.target
[Service]
ExecStart=/opt/myapp/myapp
WorkingDirectory=/opt/myapp
User=www-data
Restart=on-failure
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp
journalctl -u myapp -f
✅ Go 程序中用 log.Println 即可,自动进入系统日志
logFile, _ := os.OpenFile("/var/log/myapp.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
log.SetOutput(logFile)
import "log/syslog"
logwriter, _ := syslog.New(syslog.LOG_INFO, "myapp")
log.SetOutput(logwriter)
sudo vim /etc/rsyslog.d/myapp.conf
if ($programname == "myapp") then {
/var/log/myapp.log
& stop
}
sudo systemctl restart rsyslog
查看:
tail -f /var/log/myapp.log
zap / logrus如果你指的是:
log 包可以告诉我具体场景,我给你更精确的配置。