2016-08-22 9 views
2

アプリケーションによってエラーログが生成されたときにメールを送信するようにロガーインスタンスを設定しようとしています。私はこの目的のためにgmailを使うことを考えました。私のlogger.xmlは以下の通りです:ログバックSMTPAppenderがgmail設定で動作しない

<configuration> 

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>/path-to-application/application.log</file> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <!-- rollover daily --> 
      <fileNamePattern>/path-to-application/application-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern> 
      <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
       <!-- or whenever the file size reaches 250MB --> 
       <maxFileSize>250MB</maxFileSize> 
      </timeBasedFileNamingAndTriggeringPolicy> 
      <maxHistory>30</maxHistory> 
     </rollingPolicy> 
     <encoder> 
      <pattern>%date - %thread [%level] - %message%n%xException%n</pattern> 
     </encoder> 
    </appender> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <pattern>%date - %thread [%level] - %message%n%xException%n</pattern> 
     </encoder> 
    </appender> 

    <appender name="EMAIL" class="ch.qos.logback.classic.net.SMTPAppender"> 
     <smtpHost>smtp.gmail.com</smtpHost> 
     <smtpPort>465</smtpPort> 
     <ssl>true</ssl> 
     <username>[email protected]</username> 
     <password>abc's password</password> 
     <asynchronousSending>false</asynchronousSending> 
     <to>[email protected]@gmail.com</to> 
     <!--<to>ANOTHER_EMAIL_DESTINATION</to> &lt;!&ndash; additional destinations are possible &ndash;&gt;--> 
     <from>[email protected]</from> 
     <subject>TESTING: %logger{20} - %m</subject> 
     <layout class="ch.qos.logback.classic.PatternLayout"> 
      <pattern>%date %-5level %logger{35} - %message%n</pattern> 
     </layout> 
     <cyclicBufferTracker class="ch.qos.logback.core.spi.CyclicBufferTracker"> 
      <!-- send just one log entry per email --> 
      <bufferSize>1</bufferSize> 
     </cyclicBufferTracker> 
    </appender> 

    <logger name="play" level="WARN"/> 
    <logger name="application" level="INFO"/> 

    <root level="ERROR"> 
     <!-- <appender-ref ref="STDOUT" /> --> 
     <appender-ref ref="EMAIL"/> 
    </root> 
</configuration> 

私は、私のSBTファイルに依存関係としてjavax.mailとactivationを追加しました。ローリングファイルアペンダーとコンソールアペンダーは正常に動作していますが、SMTPアペンダーはこれらの設定では動作しないようです。エラーログはローリングファイルに記録されていますが、メールとして送信されていません。私はさらに調査することができるようにログに記録されている例外はありません。

これらの仕様に問題がありますか、GmailのSMTPサーバの問題が原因ですか?

答えて

2

私は同じ問題を抱えており、最終的にはデバッグで見つけました。

たとえば、2段階認証を設定している場合、LogbackでGmailを認証することはできません。ログバック用のアプリパスワードを生成して、通常のパスワードの代わりに設定で使用してください。

あなたはこれらの指示に従うことができます。 https://stackoverflow.com/a/25238515/1540818

+0

私はあなたが言及している正確に何をいくつかの時間前にこの問題を解決することができました。残念ながら、ここでそれを更新することを完全に忘れました。ありがとう。 – t6nand

関連する問題