在Debian系统下管理Golang编译后的日志,可通过以下方式实现:
logrotate
通过logrotate工具实现日志轮转、压缩和删除,配置文件路径为/etc/logrotate.d/自定义名称,示例配置:
/var/log/myapp/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    create 0640 root root
}
启用后系统会自动按配置管理日志。
systemd-journal
若通过systemd管理服务,日志由journalctl统一管理,可查看、清理或过滤日志,例如:
sudo journalctl -u myapp -f  # 实时查看服务日志
sudo journalctl --vacuum-time=2weeks  # 清理两周前日志
第三方日志库
import (
    "github.com/sirupsen/logrus"
    "gopkg.in/natefinch/lumberjack.v2"
)
func main() {
    logger := logrus.New()
    logger.SetOutput(&lumberjack.Logger{
        Filename:   "/var/log/myapp.log",
        MaxSize:    100, // MB
        MaxBackups: 7,
        Compress:   true,
    })
    logger.Info("This is a log message")
}
lumberjack实现轮转。标准库log
使用log包时,可通过SetOutput将日志输出到文件,但需手动实现轮转逻辑或结合lumberjack。
tail -f结合grep过滤关键日志,或通过Fluentd/Logstash收集并转发至ELK等分析平台。Grafana+Prometheus展示日志指标,或使用GoAccess生成Web访问日志统计。0640),避免敏感信息泄露。rsync或scp传输至远程存储。根据实际需求选择合适方案,小型项目可优先使用logrus+lumberjack,大型分布式系统建议结合systemd和日志收集工具实现集中管理。