2009-08-19 44 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:WARN没有这样的属性[编码]在org.apache.log4j.net.SMTPAppender
+0

还提到所以根据您接受的答案,你有没有延长SMTPAppender?谨慎给我们来源? – cherouvim 2009-12-08 10:17:50

+1

是的,当然是:http://gist.github.com/252856 – valodzka 2009-12-09 21:48:06

回答

1

按照code of the latest SMTPAppender (1.2.15),不仅没有setEncoding,但编码甚至没有提到那里。

你真的看到它的问题吗?如果是这样,为什么不从SMTPAppender继承或提供您自己的实现?

+0

谢谢,我已经想过了,但我希望有一个非常规的解决方案。 – valodzka 2009-08-19 19:54:37

-1

集这个属性在log4j的配置: log4j.appender.MyAppender.Encoding = UTF-8

+0

没有为我工作。你试过了吗? – cherouvim 2009-12-08 10:30:14

+0

我在做什么版本的log4j? – KingInk 2010-02-16 14:27:38

+0

它也不适合我。我使用最新的log4j lib log4j-1.2.16.jar。我该如何解决它? – kitokid 2011-11-22 01:45:52