无论如何我们可以更改syslog记录的特定日志文件中的日期格式吗?我不想改变记录所有日志的方式,而只是改变日志文件.
编辑:我正在使用syslogd(在FreeBSD中)
这就是我的文件现在的样子:
Dec 5 07:52:10 Log data 1 Dec 5 07:52:10 Log data 2 Dec 5 07:52:10 Log data 3
这就是我希望它看起来像:
20131205 07:52:10 Log data 1 20131205 07:52:10 Log data 2 20131205 07:52:10 Log data 3
我的syslog.conf看起来像这样,其中/var/log/my_log.log是我的日志文件:
+@ *.notice;local0.none;local1.none;local2.none;authpriv.none;kern.debug;mail.crit;news.err /var/log/messages security.* /var/log/security auth.info;authpriv.info /var/log/auth.log mail.info /var/log/maillog ftp.info /var/log/xferlog cron.* /var/log/cron *.=debug /var/log/debug.log console.info /var/log/console.log local1.info /var/log/my_log.log
解决方法
即使您找到了不同的解决方案,我也会为其他人提供答案.
编辑syslog配置文件(例如,在Debian上:/etc/syslog-ng/syslog-ng.conf).
然后声明一个这样的新模板:
template template_date_format { template("${YEAR}-${MONTH}-${DAY} ${HOUR}:${MIN}:${SEC} ${HOST} ${MSGHDR}${MSG}\n"); template_escape(no); };
这是一个示例,但您可以根据user9645的答案中链接的syslog文档使用不同的宏.
之后,在此配置文件中查找要更改输出格式的所有文件,并将此模板应用于它们.
例如,我想更改/var/log/auth.log输出格式,然后我更改:
destination d_auth { file("/var/log/auth.log"); };
至 :
destination d_auth { file("/var/log/auth.log" template(template_date_format)); };
然后重新启动syslog(service syslog-ng restart)并尝试登录以查看auth.log中的更改.