Log4j-encoding problem
Ich konfiguriert log4j SMTPAppender zum senden von E-Mails, um mich auf Fehler. Es funktioniert, aber ich habe ein problem mit nicht-ASCII-Daten. - Konfiguration verwendet HTMLLayout und deren Dokumentation besagt:
Appenders mit diesem layout haben sollten, Ihre Kodierung festlegen, für UTF-8 oder UTF-16, sonst Veranstaltungen mit nicht-ASCII-Zeichen führen könnte beschädigt log-Dateien.
Mein log-Dateien enthält, muss die UTF-8-Daten, aber ich kann nicht finden, wo ich einstellen kann Codierung für Appen. Hier ist appender Konfiguration:
<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>
Wenn die Anwendung läuft ich habe:
log4j:WARN Keine solche Eigenschaft [encoding] in org.apache.log4j.net.SMTPAppender
- Also basierend auf Ihre Antwort akzeptiert, hast du erweitern SMTPAppender? Die Pflege zu geben, die uns die Quelle?
- Ja, natürlich: gist.github.com/252856
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entsprechend der code der neuesten SMTPAppender (1.2.15), nicht nur gibt es keine setEncoding, aber die Codierung nicht auch dort erwähnt.
Tun Sie wirklich Probleme mit dem es? Wenn dem so ist, warum nicht Erben von SMTPAppender oder bieten Ihre eigene Implementierung?
Haben Sie schaute auf logback? Seine SMTPAppender unterstützt das festlegen der Zeichenkodierung.
Den neuesten (1.2.16) version behebt diese.
http://svn.apache.org/viewvc/logging/log4j/tags/v1_2_16/src/main/java/org/apache/log4j/net/SMTPAppender.java?revision=929374&view=markup
Es ist auch erwähnt im changelog http://logging.apache.org/log4j/1.2/changes-report.html#a1.2.16
legen Sie diese Eigenschaft in der log4j-Konfiguration:
log4j.appender.MyAppender.Encoding=UTF-8