n9e会写大量日志到系统日志里面怎么解决
Q:n9e会写大量日志到系统日志(/var/log/messages)里面怎么解决
A:linux systemd 托管的程序如果没有对日志配置进行修改,就有可能会遇到这种情况。我们需要做的就是去修改配置文件中关于日志的配置 config.toml。
[Log]# log write dirDir = "logs"# log level: DEBUG INFO WARNING ERRORLevel = "DEBUG"# stdout, stderr, fileOutput = "stdout"# # rotate by time# KeepHours = 4# # rotate by size# RotateNum = 3# # unit: MB# RotateSize = 256
可以将日志级别Level调整为高级别,如”WARNING”;如果把日志想要存放到其他位置,也可以通过修改Output字段的配置为”file”,并且修改Dir字段为日志目录,默认会在当前目录下创建logs目录来存放日志,同时可根据需要放开注释的配置项并修改,如KeepHours,RotateNum,RotateSize。
[Log]# log write dirDir = "logs"# log level: DEBUG INFO WARNING ERRORLevel = "WARNING"# stdout, stderr, fileOutput = "file"# # rotate by timeKeepHours = 4# # rotate by sizeRotateNum = 3# # unit: MBRotateSize = 256
接下来再解释一下为什么是打印日志到/var/log/messages,目前日志默认打印位置的配置是”stdout”,也就是标准输出,可以是终端、控制台或者文件。例如通过重定向操作符号,将stdout输出到文件中,如“nohup ./n9e &> n9e.log &”。当利用systemd 托管程序时,stdout的输出就是/var/log/messages。
还有一点需要注意如果v6.4.0之前版本在修改日志保存到文件后,数据库相关的日志,如慢SQL,还会打印到/var/log/messages的日志中,在新版本修复了这个问题,统一了打印的位置,如慢SQL会打印到WARNING的日志中。