logback рассылка smtpAppender как на уровне ошибок, так и на уровне информационного журнала - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь использовать SMTP appender для отправки оповещений по электронной почте. Я получаю электронные письма только тогда, когда уровень журнала «ошибка» (я знаю, что это по умолчанию). Как я могу получать электронные письма, когда уровень журнала устанавливается на «info»?

<property resource="application.properties"/>
<appender name="EMAIL" class="ch.qos.logback.classic.net.SMTPAppender">
      <smtpHost>${spring.mail.host}</smtpHost>
     <username>${spring.mail.username}</username>
     <password>${spring.mail.password}</password>
     <smtpPort>${spring.mail.port}</smtpPort>
     <STARTTLS>false</STARTTLS>
     <SSL>true</SSL>
     <subject>Exception: Registraion App %m</subject>
     <to>${spring.mail.to}</to>
     <from>${spring.mail.from}</from>
     <asynchronousSending>true</asynchronousSending>
    <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%date %-5level %logger{35} - %message%n</pattern>
    </layout>
</appender>

<logger name="errorLogger" level="error" additivity="false">
   <appender-ref ref="EMAIL"/>
</logger>

В классе Java я вызываю это, как показано ниже

public static final Logger emailExceptionLOGGER = LoggerFactory.getLogger("errorLogger");

   try{
         .....
      }catch(Exception e){
         emailExceptionLOGGER.error("To send exception email")   
     }

Я также хотел бы отправлять электронные письма об успехе, когда для уровня журнала установлено значение «info»

<appender name="SUCCESS-EMAIL" class="ch.qos.logback.classic.net.SMTPAppender">
      <smtpHost>${spring.mail.host}</smtpHost>
      <username>${spring.mail.username}</username>
      <password>${spring.mail.password}</password>
      <smtpPort>${spring.mail.port}</smtpPort>
      <STARTTLS>false</STARTTLS>
      <SSL>true</SSL>
      <subject>Registraion App %m</subject>
      <to>${spring.mail.to}</to>
      <from>${spring.mail.from}</from>
      <asynchronousSending>true</asynchronousSending>
      <layout class="ch.qos.logback.classic.PatternLayout">
          <pattern>%date %-5level %logger{35} - %message%n</pattern>
     </layout>
</appender>

<logger name="successLogger" level="info" additivity="false">
    <appender-ref ref="SUCCESS-EMAIL"/>
</logger>

В классе Java я вызываю что-то вроде ниже

public static final Logger emailSuccessLOGGER = LoggerFactory.getLogger("successLogger");

  if(success){
      emailSuccessLOGGER.info("To send success email")   
  }

Я бы хотел справиться с обоими вместе. Заранее спасибо.

1 Ответ

0 голосов
/ 08 июля 2019

включить ниже после макета в вашем приложении электронной почты. Следует отфильтровать информационные журналы.

<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <level>ERROR</level>
</filter>
...