2016-08-22 4 views
2

Я пытаюсь настроить свои экземпляры журнала для отправки писем всякий раз, когда приложение сгенерирует журнал ошибок. Я думал об использовании gmail для этой цели. Мой logger.xml, как показано ниже:Logback 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> 

Я добавил javax.mail и активации в качестве зависимостей в моем файле SBT. Приложение Rolling file appender и консольное приложение отлично работают, но SMTP-приложение, похоже, не работает с этими настройками. Журналы ошибок регистрируются в моем скользящем файле, но не отправляются как почта. Записи не регистрируются, поэтому я мог бы продолжить исследование.

Есть что-то неправильно в этих спецификациях или проблемах может быть из gmail smtp server end?

ответ

2

У меня была такая же проблема, и, наконец, выяснилось через отладку.

Служба регистрации не может выполнить проверку подлинности в Gmail, если у вас есть, например, двухэтапная аутентификация. Попробуйте создать пароль приложения для регистрации и использовать его вместо обычного пароля в конфиге.

Вы можете выполнить следующие инструкции: https://stackoverflow.com/a/25238515/1540818

+0

Я был в состоянии решить эту проблему, некоторое время назад именно то, что вы упомянули. К сожалению, совершенно забыл обновить его здесь. Благодарю . – t6nand

Смежные вопросы