
seelog 的日期型滚动文件名格式本应遵循文档所描述的“时间前缀 + 文件名”结构(例如 `142711-myapp.log`),但实践中观察到的却是 `myapp.log.142711` 这类后缀式命名——这并非配置错误,而是官方文档与实际实现长期不一致所致。
根据 seelog issue #71 中核心开发者的确认,该行为源于文档未同步更新:当前源码中 date 类型滚动逻辑始终将 datepattern 格式化的时间字符串附加在原始文件名之后(即 filename + "." + time.Now().Format(datepattern)),而非按文档所述的前置拼接。因此,无论 filename 字段如何设置(如 /tmp/-myApp.log),都无法改变 .142711 后缀的位置。
目前(截至 seelog 最后维护版本 v1.1.0)没有内置机制支持时间前缀命名。社区亦无稳定补丁或 fork 提供此功能;若强需该行为,可行路径仅有两种:
- 方案一(推荐):改用更活跃的日志库(如 zerolog 或 zap),配合 lumberjack 等成熟滚动写入器,可精确控制文件名模板(例如 zapcore.NewRollingFileSink("logs/{time}-myApp.log", ...));
- 方案二(谨慎):自行 Fork seelog 并修改 rollfilewriter.go 中 getRollingFileName() 方法,将 fileName + "." + timeStr 替换为 strings.TrimSuffix(fileName, filepath.Ext(fileName)) + timeStr + filepath.Ext(fileName) ——但需承担维护成本与兼容性风险。
⚠️ 注意:seelog 自 2018 年起已停止维护,GitHub 仓库标记为 Archived。生产环境强烈建议迁移至现代日志方案,避免因文档缺失、Bug 修复停滞及 Go 新版本兼容性问题引入隐患。










