web-dev-qa-db-ja.com

メールログの日付形式を変更するにはどうすればよいですか?

メールログログの日付の形式は次のようになります。

May 12 04:12:54

この日付に年を含める必要があります。このような変更を行うことは可能ですか?

2
dioo

おそらくより良い答えは、rsyslogで生成されたすべてのログに新しいsyslog標準を採用することです。

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

構成はRFC5424標準に非常に近いです。

これは、rsyslog.confファイルに次の行を配置することによって行われます。

 $ActionFileDefaultTemplate RSYSLOG_SyslogProtocol23Format

Syslogファイルの特定の行は次のように表示されます。

 <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)

フルタイムと日付、およびタイムスタンプのタイムゾーンが含まれていることに注意してください。

2
mdpc

もう少し調査といくつかのテストを行った後、私は必要な解決策を見つけました。私のサーバーは、rsyslogを使用してログを記録するCentOS 7.6で動作します。

  1. ファイル/etc/rsyslog.confを編集し、セクション「ルール」の前に次のテンプレートを追加します。
$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ファイルのログは、次の形式の日付で出力されます:年-月-日時:分:秒

1
dioo