Uploaded image for project: 'logback'
  1. logback
  2. LOGBACK-773

Messages not sent or sent in one malformed email when using two SMTP appenders

    XMLWordPrintable

Details

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • 1.0.6
    • logback-classic
    • 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

      {"MMMM dd, yyyy, HH:mm:ss.SSS"}

      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

      {"MMMM dd, yyyy, HH:mm:ss.SSS"}

      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

      ============================

      Attachments

        Activity

          People

            logback-dev Logback dev list
            djechlin Dan Echlin
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: