2009-08-19 21 views
2

log4j SMTPAppenderがエラー時に私に電子メールを送信するように設定しました。それは動作しますが、私は非ASCIIデータに問題があります。設定はHTMLLayoutを使用し、そのドキュメントの状態:このレイアウトを使用してLog4jエンコーディングの問題

アペンダが自分のエンコーディングがUTF-8またはUTF-16に設定されている必要があり、そうでない場合は非ASCII文字を含むイベントが破損したログファイルにつながる可能性があります。

私のログファイルにはUTF-8データが含まれている必要がありますが、どこにappenderのエンコードを設定できるのかわかりません。ここアペンダの構成は次のとおりです。

<appender name="MAIL" class="org.apache.log4j.net.SMTPAppender"> 
    <param name="BufferSize" value="25" /> 
    <param name="SMTPHost" value="localhost" /> 
    <param name="From" value="[email protected]" /> 
    <param name="Threshold" value="error" /> 
    <param name="To" value="[email protected]" /> 
    <param name="Subject" value="Error Occurred" /> 
    <param name="LocationInfo" value="true"/> 
    <param name="encoding" value="UTF-8" /> 
    <!-- <param name="Encoding" value="UTF-8"/> --> 
    <layout class="org.apache.log4j.HTMLLayout"> 
    </layout> 
</appender> 

アプリケーションの実行時に私が得た:

はlog4jの:によるとorg.apache.log4j.net.SMTPAppender
+0

に言及したのですか?私たちにソースを与えるためにケア? – cherouvim

+1

はい、もちろんです:http://gist.github.com/252856 – valodzka

答えて

1

にそのようなプロパティ[エンコーディング]をWARNありませんcode of the latest SMTPAppender (1.2.15)は、setEncodingがないだけでなく、エンコーディングにも言及していません。

実際に問題がありますか?その場合は、SMTPAppenderを継承しないでください。

+0

ありがとう、私はそれについて考えましたが、私はstandartソリューションがあることを望んだ。 – valodzka

-1

セットのlog4jの設定で、このプロパティ: はlog4j.appender.MyAppender.Encoding = UTF-8

+0

私のために働かなかった。あなたはそれを試しましたか? – cherouvim

+0

実行しているlog4jのバージョンは何ですか? – KingInk

+0

それは私のためにも働いていません。私は最新のlog4j lib log4j-1.2.16.jarを使用します。どうすれば解決できますか? – kitokid

2

あなたはlogbackで見たことがありますか?そのSMTPAppenderは、文字エンコーディングの設定をサポートしています。

1

最新のバージョン(1.2.16)がこれを解決します。

http://svn.apache.org/viewvc/logging/log4j/tags/v1_2_16/src/main/java/org/apache/log4j/net/SMTPAppender.java?revision=929374&view=markup

subject: line 144 
body: line 390 
content type: line 394 

それはまた、あなたがSMTPAppenderを拡張しなかった、だからあなたの受け入れ答えに基づいて変更履歴http://logging.apache.org/log4j/1.2/changes-report.html#a1.2.16

SMTPAppender does not properly encode subject or content containing non-ASCII characters. Fixes 44644. 
関連する問題