如何更改邮件日志的日期格式?

如何更改邮件日志的日期格式?

我的邮件日志日期的格式如下:

May 12 04:12:54

我需要在这个日期中添加年份。可以进行这种更改吗?

答案1

经过进一步的研究和测试,我找到了所需的解决方案。我的服务器使用 CentOS 7.6,它使用 rsyslog 进行记录。

  1. 编辑文件 /etc/rsyslog.conf,在“RULES”部分之前添加以下模板:
$template MailLogFormat, "%timestamp:::date-year%-%timestamp:::date-month%-%timestamp:::date-day% %timestamp:::date-hour%:%timestamp:::date-minute%:%timestamp:::date-second% %hostname% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"
  1. 搜索以下行:
# Log all the mail messages in one place.
mail.*       -/var/log/maillog

并更改为:

# Log all the mail messages in one place.
mail.*       -/var/log/maillog;MailLogFormat
  1. 重新启动rsyslog:
systemctl restart rsyslog

完成。/var/log/maillog 文件中的日志将以以下格式打印日期:年-月-日 时:分:秒

答案2

可能更好的答案是对所有 rsyslog 生成的日志采用较新的 syslog 标准.....参见

 http://support.pimpmylog.com/kb/softwares/rsyslog-protocol-23-format

该配置非常接近RFC 5424标准。

通过在 rsyslog.conf 文件中添加以下行即可完成此操作:

 $ActionFileDefaultTemplate RSYSLOG_SyslogProtocol23Format

系统日志文件中的给定行将显示如下内容:

 <27>1 2014-01-12T20:06:05.783312-05:00 somebody smbd 3752 - -  [2014/01/12 20:06:05.783190,  0] printing/print_cups.c:487(cups_async_callback)

请注意,时间戳中包含完整的时间和日期以及时区。

答案3

感谢 dioo,我在 Ubuntu Server 20.04 中可以使用以下方法

  1. 转到 rsyslog 配置

    sudo nano /etc/rsyslog.conf

  2. 在“全局指令”下,注释掉现有样式,例如,$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat并添加以下行

$template CustomFormat,“%时间戳:::日期年%-%时间戳:::日期月%-%时间戳:::日期日%%时间戳:::日期小时%:%时间戳:::日期分钟%:%时间戳:::日期秒%%主机名%%syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n”

  1. 保存并关闭文件。转到以下位置的 default-conf 文件

    sudo nano /etc/rsyslog.d/50-default.conf

  2. 在您希望更改时间戳的每个日志行后附加“CustomFormat”

    user.* -/var/log/user.log;CustomFormat

  3. 重启服务

    sudo systemctl restart rsyslog

最终时间戳如下

2020-12-22 22:50:19

相关内容