Вот фрагмент, содержащий мой Logback SMTPAppender
:Почему Logback SMTPAppender отправляет только 1 электронное письмо?
<appender name="logManager-smtpAppender" class="ch.qos.logback.classic.net.SMTPAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>NEUTRAL</onMismatch>
</filter>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<asynchronousSending>false</asynchronousSending>
<smtpHost>my.smtp.host</smtpHost>
<to>[email protected]</to>
<from>[email protected]</from>
<username>my_smtp_user</username>
<password>my_smtp_password</password>
<subject>%logger{20} - %m</subject>
<layout class="ch.qos.logback.classic.html.HTMLLayout"/>
<cyclicBufferTracker class="ch.qos.logback.core.spi.CyclicBufferTracker">
<bufferSize>1</bufferSize>
</cyclicBufferTracker>
</appender>
Когда следующий Java выполняет:
logger.warn("This is a warning.");
logger.error("This is an error.");
я получаю только 1 сообщение. Установив bufferSize
в 1, я бы ожидал получить 2 разных сообщения электронной почты с одним единственным сообщением журнала в каждом из них. Что происходит?
Спасибо @Waheed (и +1 для образцов кода). Одна вещь, которую я все еще не получаю, заключается в следующем: что произойдет, если я увеличу значение bufferSize до 10, а затем запустим, скажем, 12 сообщений ERROR? Получу ли я 1 письмо с 10 сообщениями журнала? Если да, то что происходит с последними 2 сообщениями (10 + 2 = 12)? Еще раз спасибо! –
Да, если вы установите значение bufferSize равным 10, вы получите только последние 10 сообщений. В основном мы используем SMTPAppender для уведомления admin/Ops о том, что что-то пошло не так в вашем приложении. Поэтому, как только он столкнулся с журналом ERROR, он отправит вам письмо с номерами журналов, которые вы установили. За журнал ERROR вы получите одну почту. – Waheed
Еще раз спасибо (и +1!) Извините, хотя, не пытаясь быть вредителем здесь, но я до сих пор не понимаю, что произойдет с последними 2 сообщениями журнала. Скажем, у меня есть код, который вызывает 12 сообщений 'logger.error (" ... ")' в строке, а 'bufferSize' - 10. Как вы сказали, я бы получил 1 электронное письмо с 10 сообщениями ERROR. ** Но что происходит с последними 2 журналами ОШИБКИ? ** Еще раз спасибо за вашу помощь! –