2 Replies Latest reply on Nov 3, 2010 11:45 AM by stephengaunt

    Jboss - DailyRollingFileAppender Behaviour

    stephengaunt

      Hi all,

       

      The following is the logging configuration in my log4j.xml. The problem is that the console.log file does not log the STDOUT statements. If I restart the server they are logged. But after one or two days only INFO messages are shown. If I open the log4j.xml and modify it (like adding an empty space etc) then again the STDOUT statements are logged for some time. Then it stops. I am not sure why this is happening. It would be great if someone could shed a light on this.

       

      {code:xml}

      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

       

      <!-- ===================================================================== -->
      <!--                                                                       -->
      <!--  Log4j Configuration                                                  -->
      <!--                                                                       -->
      <!-- ===================================================================== -->

       

      <!-- $Id: log4j.xml 56612 2006-09-07 15:12:39Z thomas.diesler@jboss.com $ -->

       

      <!--
         | For more configuration infromation and examples see the Jakarta Log4j
         | owebsite: http://jakarta.apache.org/log4j
      -->

       

      <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">

       

         <!-- ================================= -->
         <!-- Preserve messages in a local file -->
         <!-- ================================= -->

       


         
         <!-- A time/date based rolling appender -->
         <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
            <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
            <param name="File" value="/var/data2/jbosslogs/server.log"/>
            <param name="Append" value="true"/>

       

            <!-- Rollover at midnight each day -->
            <param name="DatePattern" value="'.'yyyy-MM-dd"/>

       

            <!-- Rollover at the top of each hour
            <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
            -->

       

            <layout class="org.apache.log4j.PatternLayout">
               <!-- The default pattern: Date Priority [Category] Message\n -->
               <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>

       

               <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n
               <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
                -->
            </layout>   
         </appender>

       

         <!-- ============================== -->
         <!-- Append messages to the console -->
         <!-- ============================== -->

       

         <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
            <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
            <param name="Target" value="System.out"/>
            <param name="Threshold" value="INFO"/>

       

            <layout class="org.apache.log4j.PatternLayout">
               <!-- The default pattern: Date Priority [Category] Message\n -->
               <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
            </layout> 
         </appender>

       

      <appender name="CONSOLEFILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
            <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
            <param name="Append" value="true"/>
         
          <param name="Target" value="System.out"/>
            <param name="Threshold" value="INFO"/>
            <param name="File" value="/var/data2/jbosslogs/console.log"/>
            <!-- Rollover at midnight each day -->
            <param name="DatePattern" value="'.'yyyy-MM-dd"/>
            <layout class="org.apache.log4j.PatternLayout">
               <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
            </layout>
         </appender>

       

         <!-- ====================== -->
         <!-- More Appender examples -->
         <!-- ====================== -->

       

         <!-- Buffer events and log them asynchronously
         <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
           <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
           <appender-ref ref="FILE"/>
           <appender-ref ref="CONSOLE"/>
           <appender-ref ref="SMTP"/>
         </appender>
         -->

       

         <!-- EMail events to an administrator
         <appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
           <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
           <param name="Threshold" value="ERROR"/>
           <param name="To" value="admin@myhost.domain.com"/>
           <param name="From" value="nobody@myhost.domain.com"/>
           <param name="Subject" value="JBoss Sever Errors"/>
           <param name="SMTPHost" value="localhost"/>
           <param name="BufferSize" value="10"/>
           <layout class="org.apache.log4j.PatternLayout">
             <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
           </layout>
         </appender>
         -->

       

         <!-- Syslog events
         <appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender">
           <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
           <param name="Facility" value="LOCAL7"/>
           <param name="FacilityPrinting" value="true"/>
           <param name="SyslogHost" value="localhost"/>
           <layout class="org.apache.log4j.PatternLayout">
             <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
           </layout>
         </appender>
         -->

       

         <!-- Log events to JMS (requires a topic to be created)
         <appender name="JMS" class="org.apache.log4j.net.JMSAppender">
           <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
           <param name="Threshold" value="ERROR"/>
           <param name="TopicConnectionFactoryBindingName" value="java:/ConnectionFactory"/>
           <param name="TopicBindingName" value="topic/MyErrorsTopic"/>
         </appender>
         -->

       

         <!-- Log events through SNMP
         <appender name="TRAP_LOG" class="org.apache.log4j.ext.SNMPTrapAppender">
           <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
           <param name="ImplementationClassName" value="org.apache.log4j.ext.JoeSNMPTrapSender"/>
           <param name="ManagementHost" value="127.0.0.1"/>
           <param name="ManagementHostTrapListenPort" value="162"/>
           <param name="EnterpriseOID" value="1.3.6.1.4.1.24.0"/>
           <param name="LocalIPAddress" value="127.0.0.1"/>
           <param name="LocalTrapSendPort" value="161"/>
           <param name="GenericTrapType" value="6"/>
           <param name="SpecificTrapType" value="12345678"/>
           <param name="CommunityString" value="public"/>
           <param name="ForwardStackTraceWithTrap" value="true"/>
           <param name="Threshold" value="DEBUG"/>
           <param name="ApplicationTrapOID" value="1.3.6.1.4.1.24.12.10.22.64"/>
           <layout class="org.apache.log4j.PatternLayout">
                  <param name="ConversionPattern" value="%d,%p,[%t],[%c],%m%n"/>
           </layout>
         </appender>
         -->

       

         <!--  Emit events as JMX notifications
         <appender name="JMX" class="org.jboss.monitor.services.JMXNotificationAppender">
            <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
           
            <param name="Threshold" value="WARN"/>
            <param name="ObjectName" value="jboss.system:service=Logging,type=JMXNotificationAppender"/>
           
            <layout class="org.apache.log4j.PatternLayout">
               <param name="ConversionPattern" value="%d %-5p [%c] %m"/>
            </layout>
         </appender>
         -->
        
         <!-- ================ -->
         <!-- Limit categories -->
         <!-- ================ -->

       

         <!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
         <category name="org.apache">
            <priority value="INFO"/>
         </category>

       

         <!-- Limit the org.jboss.serial (jboss-serialization) to INFO as its DEBUG is verbose -->
         <category name="org.jboss.serial">
            <priority value="INFO"/>
         </category>

       

         <!-- Limit the org.jgroups category to WARN as its INFO is verbose -->
         <category name="org.jgroups">
            <priority value="WARN"/>
         </category>

       

         <!-- Limit the jacorb category to WARN as its INFO is verbose -->
         <category name="jacorb">
            <priority value="WARN"/>
         </category>

       

         <!-- Limit JBoss categories
         <category name="org.jboss">
            <priority value="INFO"/>
         </category>
         -->

       

         <!-- Limit the JSR77 categories -->
         <category name="org.jboss.management">
            <priority value="INFO"/>
         </category>

       

         <!-- Enable JBossWS message tracing
         <category name="jbossws.SOAPMessage">
          <priority value="TRACE" class="org.jboss.logging.XLevel"/>
         </category>
         -->

       

         <!-- Decrease the priority threshold for the org.jboss.varia category
         <category name="org.jboss.varia">
           <priority value="DEBUG"/>
         </category>
         -->

       

         <!-- Show the evolution of the DataSource pool in the logs [inUse/Available/Max]
         <category name="org.jboss.resource.connectionmanager.JBossManagedConnectionPool">
           <priority value="TRACE" class="org.jboss.logging.XLevel"/>
         </category>
         -->

       

         <!--
            | An example of enabling the custom TRACE level priority that is used
            | by the JBoss internals to diagnose low level details. This example
            | turns on TRACE level msgs for the org.jboss.ejb.plugins package and its
            | subpackages. This will produce A LOT of logging output.
         <category name="org.jboss.system">
           <priority value="TRACE" class="org.jboss.logging.XLevel"/>
         </category>
         <category name="org.jboss.ejb.plugins">
           <priority value="TRACE" class="org.jboss.logging.XLevel"/>
         </category>
         -->
       
         <!--
             | Logs these events to SNMP:
                 - server starts/stops
                 - cluster evolution (node death/startup)
                 - When an EJB archive is deployed (and associated verified messages)
                 - When an EAR archive is deployed
                
         <category name="org.jboss.system.server.Server">
           <priority value="INFO" />
           <appender-ref ref="TRAP_LOG"/>
         </category>
       
         <category name="org.jboss.ha.framework.interfaces.HAPartition.lifecycle">
           <priority value="INFO" />
           <appender-ref ref="TRAP_LOG"/>
         </category>

       

         <category name="org.jboss.deployment.MainDeployer">
           <priority value="ERROR" />
           <appender-ref ref="TRAP_LOG"/>
         </category>
        
         <category name="org.jboss.ejb.EJBDeployer">
           <priority value="INFO" />
           <appender-ref ref="TRAP_LOG"/>
         </category>
        
         <category name="org.jboss.deployment.EARDeployer">
           <priority value="INFO" />
           <appender-ref ref="TRAP_LOG"/>
         </category>
       
         -->

       

         <!-- ======================= -->
         <!-- Setup the Root category -->
         <!-- ======================= -->

       

         <root>
            <appender-ref ref="CONSOLE"/>
            <appender-ref ref="CONSOLEFILE"/>
            <appender-ref ref="FILE"/>
         </root>

       

         <!-- Clustering logging -->
         <!-- Uncomment the following to redirect the org.jgroups and
            org.jboss.ha categories to a cluster.log file.

       

         <appender name="CLUSTER" class="org.jboss.logging.appender.RollingFileAppender">
           <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
           <param name="File" value="${jboss.server.log.dir}/cluster.log"/>
           <param name="Append" value="false"/>
           <param name="MaxFileSize" value="500KB"/>
           <param name="MaxBackupIndex" value="1"/>

       

           <layout class="org.apache.log4j.PatternLayout">
             <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
           </layout>
         </appender>
         <category name="org.jgroups">
           <priority value="DEBUG" />
           <appender-ref ref="CLUSTER"/>
         </category>
         <category name="org.jboss.ha">
           <priority value="DEBUG" />
           <appender-ref ref="CLUSTER"/>
         </category>
         -->

       

      </log4j:configuration>

      {code}

       

      Thanks,

      Steve

        • 1. Re: Jboss - DailyRollingFileAppender Behaviour
          wdfink

          Why you do not use the FILE appender, this will work for me in any case.

          The CONSOLE appender is not recommended for 'normal' operation.

           

          If you only want to have INFO messages you should restrict the CATEGORY instead of using Threshold because of performance issues.

          • 2. Re: Jboss - DailyRollingFileAppender Behaviour
            stephengaunt

            I am also using the DailyRollingFileAppenders. The below are the two appenders logging to server.log and console.log respectively. What I am interested is in the STDOUT statements in console.log. It is a legacy application and has lots of STDOUT statements. I am depending on those for debugging. When they suddenly stops logging STDOUT statements I am not able to debug any issues occured during that time.

             

            {code:xml}

            <!-- A time/date based rolling appender -->
               <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
                  <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
                  <param name="File" value="/var/data2/jbosslogs/server.log"/>
                  <param name="Append" value="true"/>

             

                  <!-- Rollover at midnight each day -->
                  <param name="DatePattern" value="'.'yyyy-MM-dd"/>

             

                  <!-- Rollover at the top of each hour
                  <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
                  -->

             

                  <layout class="org.apache.log4j.PatternLayout">
                     <!-- The default pattern: Date Priority [Category] Message\n -->
                     <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>

             

                     <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n
                     <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
                      -->
                  </layout>   
               </appender>

             

            <appender name="CONSOLEFILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
                  <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
                  <param name="Append" value="true"/>
               
                <param name="Target" value="System.out"/>
                  <param name="Threshold" value="INFO"/>
                  <param name="File" value="/var/data2/jbosslogs/console.log"/>
                  <!-- Rollover at midnight each day -->
                  <param name="DatePattern" value="'.'yyyy-MM-dd"/>
                  <layout class="org.apache.log4j.PatternLayout">
                     <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
                  </layout>
               </appender>

             

            {code}