デフォルトでは、log4jのFATALレベルはSyslogの緊急事態にマップされます。私たちの会社ではITsyslogの使用要件があるため、代わりにsyslogアラートにマップするためにFATALが必要です。
これを達成する簡単な方法を知っている人はいますか?
SyslogAppenderクラスのメソッドをオーバーライドしてこれを行う方法についてのガイダンスがここにあります。append
afaiは、のマッピングlog4j
がハードコーディングされていることを確認できます。
logger.fatal()を使用する場合、標準のlog4j syslogアペンダーは、syslogの重大度が最も高いレベル0「emerg」でこのメッセージをログに記録します。このレベルは通常、最も緊急のオペレーティングシステム関連のメッセージ用に予約されており、ほとんどのUnixシステムでは、ログインしているすべてのユーザーのターミナルセッションにメッセージが出力されます。ほとんどのアプリケーションでは、これはおそらくあなたが望むものではありません。アプリケーションで致命的なエラーが発生した場合は、メッセージを「クリティカル」レベル2などの下位レベルとしてログに記録する必要があります。これを行うには、「append」メソッドをオーバーライドするアペンダーを実装します。