2012-06-19 3 views
1

오류 수준 아래의 모든 로그를 필터링하고 이러한 로그가있는 전자 메일을 보내는 appender를 만들려고합니다. 이 내 logback.xml 파일 (바로 펜더 부분)처럼 보이는 방법입니다Logback appender 및 Postfix

<appender name="EMAIL" class="ch.qos.logback.classic.net.SMTPAppender"> 
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 
     <!-- deny all events with a level below ERROR --> 
     <level>ERROR</level> 
    </filter> 
    <smtpHost>${smtpHost}</smtpHost> 
    <smtpPort>${smtpPort}</smtpPort> 
    <STARTTLS>true</STARTTLS> 
    <username>${username}</username> 
    <password>${password}</password> 
    <to>${mailingList}</to> 

    <from>${username}</from> 
    <subject>%logger{20} - %m</subject> 
    <layout class="ch.qos.logback.classic.html.HTMLLayout"/> 
    <cyclicBufferTracker class="ch.qos.logback.core.spi.CyclicBufferTrackerImpl"> 
      <bufferSize>1</bufferSize> 
    </cyclicBufferTracker> 
</appender> 
smtpHost은 localhost입니다

usernamepassword 내가 응용 프로그램을 실행하는 서버에서 생성 한 사용자에 속한다. 작동하지 않는 것 같습니다. 전자 메일이 전송되지 않았습니다.

그러나 다른 서버 (예 : smtpHost = smtp.gmail.com)의 매개 변수를 예상 할 때 예상대로 이메일을받습니다.

제가 생각하기에 서버에 postfix를 구성한 방식에 문제가 있음을 의미합니다. main.cf 파일의 정보를 여기에 게시하면 기꺼이 보내 드리겠습니다 (단순히 게시하고 싶지는 않습니다).

+0

나는 logback을 사용하지 않지만 내부 디버깅 정보를 방출하도록 구성 할 수 있다고 가정합니다. 나는 당신이 SMTP appender에 의해 보여지는 실제 에러를 얻을 수 있는지 알아보기 위해 그것을 시도 할 것이다. – Alex

답변

1

긴 샷이지만 여기에 아이디어가 있습니다. Posfix는 유효한 helo_hostname을 발행하지 않은 발신자의 전자 메일을 거부하도록 구성되는 경우가 많습니다. postfix의 main.ch에 다음과 유사한 지시문이 있습니까? 그렇다면

smtpd_helo_restrictions = 
     reject_non_fqdn_helo_hostname, 
     reject_invalid_helo_hostname 

smtpd_sender_restrictions = 
     reject_non_fqdn_sender, 
     reject_unknown_sender_domain 

, 당신은 합리적인 값으로 SMTPAppenderlocalhost 속성을 설정할 수 있습니다. 덧붙여서 ${username}은 후치를 위해 <from><username>을 설정하는 데 사용하지 않아야합니다.

BYW 속성을 <configuration> 요소로 설정하면 true으로 설정하여 콘솔에 로그백의 내부 메시지를 표시하는 것이 좋습니다. 마찬가지로 :

<configuration debug="true">...</configuration>