私は現在、log4jを介してログに記録されたエラーを次のように電子メールで送信します。
<appender name="email" class="org.apache.log4j.net.SMTPAppender">
<param name="SMTPHost" value="localhost"/>
<param name="From" value="notifications@mydomain.com"/>
<param name="To" value="me@mydomain.com"/>
<param name="Subject" value="Error from mydomain.com"/>
</appender>
うまく機能しますが、特定のログファイルから時々メールを送りたいと思います。この他のログファイル、ログに記録されるINFOイベントも必要です。それ、どうやったら出来るの?別のemailAppenderをセットアップしようとした場合、またはこのemailAppenderを使用した場合、ERRORまたはより悪いイベントにフィルターがあるように見えるため、何も電子メールで送信されません。そこで、LevelRangeFilterを追加してみました。
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="INFO"/>
<param name="LevelMax" value="FATAL"/>
</filter>
ただし、SMTPAppenderには影響しません:(。