2009-08-19 4 views
2

log4j SMTPAppender가 오류로 인해 이메일을 보내도록 구성했습니다. 그것은 작동하지만 비 ASCII 데이터에 문제가 있습니다. 구성 HTMLLayout 사용하고 자신의 문서 상태 : 자신의 인코딩이 UTF-8 또는 UTF-16으로 설정해야이 레이아웃을 사용하여Log4j 인코딩 문제

의 Appender를, 그렇지 않으면 비 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

고맙습니다. 저는 그것에 대해 생각해 보았습니다. 그러나 저는 그럴 수있는 해결책이 있기를 바랍니다. – 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.