Details
-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
1.0.6
-
None
-
Mac OS X Eclipse
Description
I have multiple SMTP appenders that do not play nicely with each other. On startup I am sending a test error as well as an email to notify of application startup. In some cases the error email does not go out. In other cases they both go out, however the error email also contains the ext of the startup email. I tried fixing this by capping the buffer size. On startup I am essentially calling a logger.error("test") as well as a logger.info("theMarkerName", "some text") very close to each other. My SMTP appenders are defined as follows (anonymized my company's information):
<appender name="Startup-SMTP" class="ch.qos.logback.classic.net.SMTPAppender">
<!-- SMTP appends a default evaluator of on error -->
<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
<marker>me.unroll.logging.loggers.InfoEmail.startup</marker>
</evaluator>
<!-- send just one log entry per email -->
<cyclicBufferTracker class="ch.qos.logback.core.spi.CyclicBufferTrackerImpl">
<bufferSize>1</bufferSize>
</cyclicBufferTracker>
<smtpHost>smtp.gmail.com</smtpHost>
<smtpPort>465</smtpPort>
<SSL>true</SSL>
<username>*******@Unroll.me</username>
<password>********</password>
<from>******@Unroll.me</from>
<to>*******@Unroll.me</to>
<subject>Unroll.me ${applicationName} Starting up</subject>
<layout>
<pattern><![CDATA[Timestamp: %date
machine: ${HOSTNAME}
start time: ${bySecond}
Level: %level
Source: %logger
Log Message: %message
============================
]]></pattern>
</layout>
</appender>
<appender name="Error-SMTP" class="ch.qos.logback.classic.net.SMTPAppender">
<!-- Duplicated to the fetcher file except for subject, modify together -->
<smtpHost>smtp.gmail.com</smtpHost>
<smtpPort>465</smtpPort>
<SSL>true</SSL>
<username>********@Unroll.me</username>
<password>********</password>
<from>********@Unroll.me</from>
<to>********@Unroll.me</to>
<subject>Error: Unroll.me ${applicationName} Error</subject>
<layout>
<pattern><![CDATA[Timestamp: %date
machine: ${HOSTNAME}
start time: ${bySecond}
msec since launch: %relative
Level: %level
Thread: %thread
Source: %logger
User ID: %mdc
{userId}User email: %mdc
{userEmail}Email sender: %mdc
{emailSender}Email subject: %mdc
{emailSubject}Log Message: %message
%xException
============================
]]></pattern>
</layout>
</appender>
The text of the malformed email is as follows (it is malformed in particular because the subject of one email is completely swallowed):
Timestamp: December 06, 2012, 16:44:46.752
machine: unrollme-dev-dan.local
start time: 2012-12-06,16-44-46
msec since launch: 600
Level: INFO
Thread: main
Source: me.unroll.logging.loggers.InfoEmail
User ID:
User email:
Email sender:
Email subject:
Log Message: No source version passed
Max number of users: 9000
Fetcher port: 8642
Database environment: DEVELOPMENT
Connection code offset: 0
IMAP server: 1
============================Timestamp: December 06, 2012, 16:44:46.774
machine: unrollme-dev-dan.local
start time: 2012-12-06,16-44-46
msec since launch: 622
Level: ERROR
Thread: main
Source: me.unroll.monitoringclient.UserProvisioner
User ID:
User email:
Email sender:
Email subject:
Log Message: test error
============================