背景
loggerコマンドのtオプションによりsyslogtagが付与される。例えば、
/usr/bin/logger -p local2.info -t ACCESS
ここで、syslogtagはACCESSである。
これを受けるrsyslogでは、このsyslogtagによりログをふるいにかけ出力することなどができる。
例えば、
if $syslogtag == 'ACCESS' and $syslogfacility-text == 'local2' then /var/log/access.log
ところが、log4jでは、このsyslogtagを付与する方法が
ない。
syslogtagを使うためのlog4jの設定方法
ConversionPatternの先頭にsyslogtagを書き、コロンを挟んでメッセージを書く。例えばこんな感じ。
log4j.appender.syslog.layout.ConversionPattern=ACCESS:%m
ここでACCESSはsyslogtagである。
参考:
Log4J徹底解説
理由
loggerコマンドで-tオプションをつけた場合、次のようなフォーマットになるのを確認した。
Jan 21 16:59:19 host01 ACCESS: message.