n9e会写大量日志到系统日志里面怎么解决

Q:n9e会写大量日志到系统日志(/var/log/messages)里面怎么解决

A:linux systemd 托管的程序如果没有对日志配置进行修改,就有可能会遇到这种情况。我们需要做的就是去修改配置文件中关于日志的配置 config.toml。

  1. [Log]
  2. # log write dir
  3. Dir = "logs"
  4. # log level: DEBUG INFO WARNING ERROR
  5. Level = "DEBUG"
  6. # stdout, stderr, file
  7. Output = "stdout"
  8. # # rotate by time
  9. # KeepHours = 4
  10. # # rotate by size
  11. # RotateNum = 3
  12. # # unit: MB
  13. # RotateSize = 256

可以将日志级别Level调整为高级别,如”WARNING”;如果把日志想要存放到其他位置,也可以通过修改Output字段的配置为”file”,并且修改Dir字段为日志目录,默认会在当前目录下创建logs目录来存放日志,同时可根据需要放开注释的配置项并修改,如KeepHours,RotateNum,RotateSize

  1. [Log]
  2. # log write dir
  3. Dir = "logs"
  4. # log level: DEBUG INFO WARNING ERROR
  5. Level = "WARNING"
  6. # stdout, stderr, file
  7. Output = "file"
  8. # # rotate by time
  9. KeepHours = 4
  10. # # rotate by size
  11. RotateNum = 3
  12. # # unit: MB
  13. RotateSize = 256

接下来再解释一下为什么是打印日志到/var/log/messages,目前日志默认打印位置的配置是”stdout”,也就是标准输出,可以是终端、控制台或者文件。例如通过重定向操作符号,将stdout输出到文件中,如“nohup ./n9e &> n9e.log &”。当利用systemd 托管程序时,stdout的输出就是/var/log/messages

还有一点需要注意如果v6.4.0之前版本在修改日志保存到文件后,数据库相关的日志,如慢SQL,还会打印到/var/log/messages的日志中,在新版本修复了这个问题,统一了打印的位置,如慢SQL会打印到WARNING的日志中。