类似 log4j/logback 那种的
1
waising 2022-01-18 15:02:54 +08:00
|
2
z657386160z 2022-01-18 15:06:04 +08:00
|
3
zoharSoul OP @z657386160z #2 这个是按文件大小的.
|
4
exkernel 2022-01-18 15:25:34 +08:00
|
5
mcfog 2022-01-18 15:33:15 +08:00 1
|
7
janxin 2022-01-18 15:53:01 +08:00
|
8
lwch 2022-01-18 15:57:11 +08:00
|
9
adoal 2022-01-18 17:52:00 +08:00
如果不考虑 Windows ,只在 Linux 运行的话,不如打到 syslog 里去,通过 logrotate 任务来切分。
能用运维手段解决的就没必要用开发手段解决。运维手段用的基础设施往往是久经考验的。 |
11
adoal 2022-01-18 19:02:29 +08:00 via iPhone
好吧,对运维方式处理问题不感兴趣的纯程,byebye
|
12
quzard 2022-01-18 19:12:17 +08:00 via Android
uber 开源的 zap 日志库
|
14
Immortal 2022-01-18 19:25:30 +08:00
为什么就不考虑 linux 系统里自带又好用的 logrorate
|
15
securityCoding 2022-01-18 21:04:54 +08:00 via Android
@Immortal +1
|
16
my3157 2022-01-18 21:23:12 +08:00 via Android
logrotate + signal ,完美解决
|
17
dingyaguang117 2022-01-18 22:03:45 +08:00 via iPhone
我写了一个,原理大概就是 加锁 和 rename
|
18
xuyang9978 2022-01-18 22:57:07 +08:00 via iPhone
#1 的那个也不错,使用很方便,不过作者已经不维护了
|
19
hululu 2022-01-22 17:16:40 +08:00
const rotate = "00 00 00 * * *"
func RotateCrond(logger *lumberjack.Logger, rotate string) { rotateCrondOnce.Do(func() { c := cron.New(cron.WithSeconds()) _, _ = c.AddFunc(rotate, func() { _ = logger.Rotate() }) c.Start() }) } |
20
SillyChenBrother 2022-02-18 10:03:39 +08:00
我觉得很多都不好用,就自己写了一个。
支持日志输出到控制台或文件,支持很多配置,如打印函数调用行,配置日志级别等。 支持日志层级输出到不同文件,且支持文件切割,清除过期日志文件等。 使用接口契约,你可以自行再次封装该库,我留有 SetCallerSkip 给你继续封装。 https://github.com/hunterhug/golog |