2012-12-18 2 views
1

log4j를 사용하여 오류 전자 메일을 보낼 때 SMTP 프로토콜이 협상하고 커밋 할 때 프로그램 실행에 일시 중지가 있음을 확인했습니다.log4j를 사용하여 전자 메일을 비동기 적으로 보내기

오류 전자 메일을 비동기 전송하는 데 권장되는 방법은 무엇입니까?

프로세스에 오류가 발생하는 경우 이것이 의미가 있습니까? 터미널 예외의 경우 전자 메일을 보내기 전에 프로세스가 죽는 것을 원하지 않습니다.

+1

메일 보내기의 경우 멀티 스레드 환경을 사용해야합니다. –

+0

개인적으로 [이 예제] (http://stackoverflow.com/questions/4306212/use-log4j-to-send-email-reports)가 도움이되었습니다. :) – GGrec

+0

@BhavikAmbani,'_log.error (...)'를 호출하기 위해 새 스레드를 생성해야한다는 것을 의미합니까? 그렇다면 그것은 끔찍한 생각입니다! –

답변

2

접근 방식은 것 같다 :

  1. 구성은 닮은 것 인 AsyncAppender

으로 평소

  • '랩'이 같은 이메일 펜더를 만듭니다 :

    <appender name="SmtpAppender" class="org.apache.log4j.net.SMTPAppender"> 
        <!-- ... --> 
    </appender> 
    
    <appender name="AsyncSmtpAppender" class="org.apache.log4j.AsyncAppender"> 
        <appender-ref ref="MAIL"/> 
    </appender> 
    

    하지만 이메일을 보내지 못하는 것에 대한 우려는 없습니다. 프로세스를 중단시키는 치명적인 오류 조건 누군가 명확히 할 수 있습니까?

  • 관련 문제