ひょんなことからエンコードを指定して Syslog にログ出力をしたいと思い立ったものの、
どうも log4j では対応していないらしく、OS デフォルトエンコードでしか出力できないらしい。
変更個所は少ないのでちょこっと書き換えてみた。
rsyslog の設定
CentOS 6.0 を使って検証してみようとしたところ、デフォでインストールされているのは rsyslog だった。
rsyslog を扱うのは初めてだったので以下設定メモ。
まずは設定ファイル /etc/rsyslog.conf を編集。
デフォルトでは外部からのログを受け付けていないので、以下のコメントアウトされている箇所を外す。
# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
適当にファシリティとテンプレートを追加。
$template testtemplate,"%timegenerated%,%msg%\n"
local0.* /var/log/local0.log;testtemplate
設定ファイルを編集したのでservice rsyslog reloadでリロードする。
logger -p local0.info "test"のようにテストしてみる。
/var/log/local0.log に「test」と出力されていることを確認。設定はできているようだ。

Copyright© 2011-2021 Shunsuke Otani All Right Reserved .