linux – 在syslog中更改日期格式

前端之家收集整理的这篇文章主要介绍了linux – 在syslog中更改日期格式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
无论如何我们可以更改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中的更改.

猜你在找的Linux相关文章