phuslu / log

Fastest structured logging
MIT License
672 stars 44 forks source link

启动多个应用程序写入同一日志文件 #50

Closed fufuok closed 2 years ago

fufuok commented 2 years ago
&log.FileWriter{
    Filename:     "logs/access.log",
    FileMode:     0600,
    MaxSize:      100 << 20,
    MaxBackups:   7,
    EnsureFolder: true,
    LocalTime:    true,
    TimeFormat:   "run",
},
lrwxrwxrwx 1 root root   14 Dec 28 13:50 access.log -> access.run.log*
-rwxrwxrwx 1 root root 1549 Dec 28 13:52 access.run.log*

配置如上. 主要为了实现像 nginx 一样, 把所有日志都写在相同文件名中. 请问我开启了多个应用程序时, 会有多个进程同时写相同的日志文件, 有问题吗? 或者有什么进程安全参数设置项吗? 谢谢!

phuslu commented 2 years ago

不可以像 nginx 那样。因为那样很难实现自动日志轮转。如我们所看到的,nginx 的日志轮转是依赖外部的工具的。

多进程的话,我建议 FileWriter 的 ProcessID 设置的 true,这样日志文件就带上 pid 了。