【发布时间】:2010-11-21 02:10:09
【问题描述】:
我将 log4j SMTPAppender 配置为在出错时向我发送电子邮件。它可以工作,但我对非 ASCII 数据有疑问。配置使用HTMLLayout 及其文档状态:
使用此布局的附加程序应将其编码设置为 UTF-8 或 UTF-16,否则包含非 ASCII 字符的事件可能会导致日志文件损坏。
我的日志文件必须包含 UTF-8 数据,但我找不到可以为 appender 设置编码的位置。这是appender配置:
<appender name="MAIL" class="org.apache.log4j.net.SMTPAppender">
<param name="BufferSize" value="25" />
<param name="SMTPHost" value="localhost" />
<param name="From" value="myapp@...com" />
<param name="Threshold" value="error" />
<param name="To" value="me@gmail.com" />
<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 No such property [encoding] in org.apache.log4j.net.SMTPAppender
【问题讨论】:
-
那么根据您接受的答案,您是否扩展了 SMTPAppender?愿意给我们来源吗?
-
是的,当然:gist.github.com/252856
标签: java logging encoding smtp log4j