1 Reply Latest reply: May 18, 2012 5:31 AM by Oleg Burakov RSS

    log4j-SMTPappender not working in jboss-logging (AS6 final)

    Oleg Burakov Newbie

      Hi!

       

      I'm using JBOSS 6.1.0.Final "Neo". I want to receive error messages by mail. I've created smtp appender in jboss-logging.xml:

       

       

      <?xml version="1.0" encoding="UTF-8"?>
      
      <!-- ===================================================================== -->
      <!--                                                                       -->
      <!--  Logging System Configuration                                         -->
      <!--                                                                       -->
      <!-- ===================================================================== -->
      
      <logging xmlns="urn:jboss:logging:6.0" xmlns:b="urn:jboss:bean-deployer:2.0">
      
         <!-- ================================= -->
         <!-- Preserve messages in a local file -->
         <!-- ================================= -->
      
         <!-- A time/date based rolling handler -->
      
         <periodic-rotating-file-handler
               file-name="${jboss.server.log.dir}/server.log"
               name="FILE"
               autoflush="true"
               append="true"
               suffix=".yyyy-MM-dd">  <!-- To roll over at the top of each hour, use ".yyyy-MM-dd-HH" instead -->
      
            <error-manager>
               <only-once/>
            </error-manager>
      
            <formatter>
               <!-- To revert back to simple stack traces without JAR versions, change "%E" to "%e" below. -->
               <!-- Uncomment this to get the class name in the log as well as the category
               <pattern-formatter pattern="%d %-5p [%c] %C{1} (%t) %s%E%n"/>
               -->
               <!-- Uncomment this to log without the class name in the log -->
               <pattern-formatter pattern="%d %-5p [%c] (%t) %s%E%n"/>
            </formatter>
         </periodic-rotating-file-handler>
         <console-handler name="CONSOLE" autoflush="true" target="System.out">
            <error-manager>
               <only-once/>
            </error-manager>
      
            <level name="INFO"/>
      
            <formatter>
               <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] %s%E%n"/>
            </formatter>
         </console-handler>
        
        
         <log4j-appender name="SMTP_MY" class="org.apache.log4j.net.SMTPAppender">
            <error-manager>
               <only-once/>
            </error-manager>
      
            <level name="FATAL"/>
      
            <properties>
       <property name="to">dev@my.domain.com</property>
               <property name="from">IG@my.domain.com</property>
               <property name="subject">JBoss Server FATAL</property>
               <property name="SMTPHost">mail.my.domain.com</property>
               <property name="bufferSize">512</property>
            </properties>
      
            <formatter>
               <pattern-formatter pattern="%d %-5p [%c] (%t) %m%n"/>
            </formatter>
         </log4j-appender>
        
        
         <logger category="org.apache">
            <level name="INFO"/>
         </logger>
      
         <!-- Limit the jacorb category to WARN as its INFO is verbose -->
         <logger category="jacorb">
            <level name="WARN"/>
         </logger>
      
         <!-- Limit JSF to INFO as its FINE is verbose -->
         <logger category="javax.enterprise.resource.webcontainer.jsf">
            <level name="INFO"/>
         </logger>
      
         <!-- Limit the org.jgroups category to WARN as its INFO is verbose -->
         <logger category="org.jgroups">
            <level name="WARN"/>
         </logger>
      
         <!-- Limit the org.quartz category to INFO as its DEBUG is verbose -->
         <logger category="org.quartz">
            <level name="INFO"/>
         </logger>
      
         <!-- Limit the com.sun category to INFO as its FINE is verbose -->
         <logger category="com.sun">
            <level name="INFO"/>
         </logger>
      
         <!-- Limit the sun category to INFO as its FINE is verbose -->
         <logger category="sun">
            <level name="INFO"/>
         </logger>
      
         <!-- Limit the javax.xml.bind category to INFO as its FINE is verbose -->
         <logger category="javax.xml.bind">
            <level name="INFO"/>
         </logger>
      
         <!-- Limit the springframework category to WARN-->
         <logger category="org.springframework">
            <level name="WARN"/>
         </logger>
      
         <logger category="com.arjuna.ats">
           <level name="INFO" />
         </logger>
      
         <!-- Limit the JSR77 categories -->
         <logger category="org.jboss.management">
            <level name="INFO"/>
         </logger>
      
         <!-- Limit the verbose facelets compiler -->
         <!-- Also suppress error with legacy facelets (JBAS-7600) -->
         <logger category="facelets.compiler">
            <level name="WARN"/>
            <filter>
               <not>
                  <match pattern="Error\sLoading\sLibrary.*jsf-libs/jsf-impl"/>
               </not>
            </filter>
         </logger>
        
      
         <logger category="org.jboss.serial">
            <level name="INFO"/>
         </logger>
      
          <!-- Reduce org.mc4j stuff in the logs -->
         <logger category="org.mc4j">
            <level name="WARN"/>
         </logger>
         <!-- This is a temporary workaround for https://jira.jboss.org/jira/browse/EMBJOPR-280 and
              should be removed once that bug if fixed in the bundled admin-console war. -->
         <logger category="org.rhq.plugins.jbossas5.ApplicationServerComponent">
            <level name="FATAL"/>
         </logger>
      
         <!-- ======================= -->
         <!-- Setup the Root category -->
         <!-- ======================= -->
      
         <root-logger>
            <!-- Set the root logger priority via a system property, with a default value. -->
            <level name="${jboss.server.log.threshold:INFO}"/>
            <handlers>
               <handler-ref name="CONSOLE"/>
               <handler-ref name="FILE"/>
               <handler-ref name="SMTP_MY"/>
       </handlers>
         </root-logger>
      
      </logging>
      
      
      

       

      In a console output I see presence FATAL messages, but I do not receive it by mail

       

      15:15:18,687 INFO  [AbstractServer] Starting: JBossAS [6.1.0.Final "Neo"]
      15:15:22,468 INFO  [ServerInfo] Java version: 1.6.0_31,Sun Microsystems Inc.
      15:15:22,468 INFO  [ServerInfo] Java Runtime: Java(TM) SE Runtime Environment (build 1.6.0_31-b05)
      15:15:22,484 INFO  [ServerInfo] Java VM: Java HotSpot(TM) Server VM 20.6-b01,Sun Microsystems Inc.
      15:15:22,484 INFO  [ServerInfo] OS-System: Windows XP 5.1,x86
      
      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      
      2012-05-17 15:18:35,531 FATAL [AIS OGD] (WorkerThread#0[192.168.135.130:3962])
      INSERT INTO IG.INQ_ANS (ID_INQ,ID_ANS,TYPEDTINQ,TYPEDTANS,IGSYSDATEUP,IGUSERUP,IGSYSDATE,IGUSER)VALUES('-3381ae86:11f1ca6ddb6:-7faf00000','-3381ae86:11f1ca6ddb6:-7fd100000','D_IN_____','D_AN_____',TO_TIMESTAMP('17.05.2012 15:18:29','dd.mm.yyyy hh24:mi:ss'),'IG',TO_DATE('17.05.2012','dd.mm.yyyy'),'IG')
      ORA-00001: unique constraint (IG.XPKINQ_ANS) violated
      IG
      INQ_ANS
      
      2012-05-17 15:18:35,546 ERROR [STDERR] (WorkerThread#0[192.168.135.130:3962]) log4j:ERROR Message object not configured.
      
      

       

      PS However JBoss 4.2.3.GA it's works perfectly!