1 Reply Latest reply on May 9, 2012 9:55 AM by rahatjaan

    Log4j not working with Jboss 7 AS

    rahatjaan

      I have configured my EJB with my custom log4j here's my log4j xml file

       

      <?xml version="1.0" encoding="UTF-8" ?>

      <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

      <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>

       

          <appender name="sptLogs" class="org.apache.log4j.DailyRollingFileAppender">

              <param name="File" value="D:/temp/logs/sm-ent/support.log" />

              <layout class="org.apache.log4j.PatternLayout">

                  <!-- <param name="ConversionPattern" value="%m%n" /> -->

                  <param name="ConversionPattern"    value="%d{DATE} %5p %c{1}:%L - %m%n" />

              </layout>

             

              <filter class="org.apache.log4j.varia.LevelRangeFilter">

                  <param name="LevelMin" value="INFO" />

                  <param name="LevelMax" value="FATAL" />

              </filter>

             

          </appender>

       

          <appender name="appLogs" class="org.apache.log4j.RollingFileAppender">

             

              <param name="File" value="D:/temp/logs/sm-ent/app.log" />

              <!--

              <param name="File" value="/usr/local/2-tomcat_integration/webapps/SanMarWebService/logs/app.log"/>

               -->

              <param name="Threshold" value="DEBUG"/>

              <param name="Append" value="true" />

              <param name="maxFileSize" value="5MB" />

              <param name="maxBackupIndex" value="20" />

              <layout class="org.apache.log4j.PatternLayout">

              <!--  <param name="ConversionPattern" value="%d %-4r [%t] %-5p %c %x - %m%n" /> -->

                  <param name="ConversionPattern" value="%d{DATE} %-5p %-15c{1}:%M() %m%n"/>

              </layout>

       

              <filter class="org.apache.log4j.varia.LevelRangeFilter">

                  <param name="LevelMin" value="DEBUG" />

                  <param name="LevelMax" value="FATAL" />

              </filter>

          </appender>

         

          <appender name="errorfile" class="org.apache.log4j.RollingFileAppender">

              <param name="maxFileSize" value="500KB" />

              <param name="maxBackupIndex" value="20" />

             

              <param name="File" value="D:/temp/logs/sm-ent/errors.log" />

              <!--

              <param name="File" value="/usr/local/2-tomcat_integration/webapps/SanMarWebService/logs/errors.log" />

              -->

              <layout class="org.apache.log4j.PatternLayout">

                  <param name="ConversionPattern"    value="%d{DATE} %5p %c{1}:%L - %m%n" />

              </layout>

              <filter class="org.apache.log4j.varia.LevelRangeFilter">

                  <param name="LevelMin" value="error" />

                  <param name="LevelMax" value="fatal" />

              </filter>

          </appender>

         

          <logger name="com.sanmar">

              <level value="DEBUG"/>

                <appender-ref ref="sptLogs"/>

          </logger>

         

          <root>

              <level value="TRACE" />

              <appender-ref ref="appLogs" />

              <appender-ref ref="errorfile" />

          </root>

         

      </log4j:configuration>

       

      I am using spring to initialize LOG4J using the spring bean like this

       

      <bean id="log4jInitialization"

              class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">

              <property name="targetClass"

                  value="org.springframework.util.Log4jConfigurer" />

              <property name="targetMethod" value="initLogging" />

              <property name="arguments">

                  <list>           

                           <value>D:\temp\properties\sm-enterprise-log4j.xml</value>                                   

                  </list>

              </property>

          </bean>

       

      But I am getting the error

       

      15:57:39,667 ERROR [stderr] (EJB default - 1) java.lang.ClassCastException: org.apache.log4j.DailyRollingFileAppender cannot be cast to org.apache.log4j.Appender

       

      15:57:39,668 ERROR [stderr] (EJB default - 1)     at org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:238)

       

      15:57:39,670 ERROR [stderr] (EJB default - 1)     at org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:171)

       

      15:57:39,670 ERROR [stderr] (EJB default - 1)     at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:184)

       

      15:57:39,671 ERROR [stderr] (EJB default - 1)     at org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMConfigurator.java:502)

       

      15:57:39,672 ERROR [stderr] (EJB default - 1)     at org.apache.log4j.xml.DOMConfigurator.parseCategory(DOMConfigurator.java:415)

       

      15:57:39,672 ERROR [stderr] (EJB default - 1)     at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:919)

       

      15:57:39,673 ERROR [stderr] (EJB default - 1)     at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:790)

       

      15:57:39,673 ERROR [stderr] (EJB default - 1)     at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:696)

       

      15:57:39,674 ERROR [stderr] (EJB default - 1)     at org.apache.log4j.xml.DOMConfigurator.configure(DOMConfigurator.java:821)

       

      15:57:39,675 ERROR [stderr] (EJB default - 1)     at org.springframework.util.Log4jConfigurer.initLogging(Log4jConfigurer.java:69)

       

      15:57:39,676 ERROR [stderr] (EJB default - 1)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

       

      15:57:39,676 ERROR [stderr] (EJB default - 1)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

       

      15:57:39,677 ERROR [stderr] (EJB default - 1)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

       

      15:57:39,677 ERROR [stderr] (EJB default - 1)     at java.lang.reflect.Method.invoke(Method.java:597)

       

      15:57:39,678 ERROR [stderr] (EJB default - 1)     at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:273)

       

      15:57:39,678 ERROR [stderr] (EJB default - 1)     at org.springframework.beans.factory.config.MethodInvokingFactoryBean.doInvoke(MethodInvokingFactoryBean.java:162)

       

      15:57:39,679 ERROR [stderr] (EJB default - 1)     at org.springframework.beans.factory.config.MethodInvokingFactoryBean.afterPropertiesSet(MethodInvokingFactoryBean.java:152)

       

      15:57:39,679 ERROR [stderr] (EJB default - 1)     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)

       

      15:57:39,680 ERROR [stderr] (EJB default - 1)     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)

       

      15:57:39,681 ERROR [stderr] (EJB default - 1)     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)

       

      15:57:39,682 ERROR [stderr] (EJB default - 1)     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

       

      15:57:39,683 ERROR [stderr] (EJB default - 1)     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)

       

      15:57:39,683 ERROR [stderr] (EJB default - 1)     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)

       

      15:57:39,684 ERROR [stderr] (EJB default - 1)     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)

       

      15:57:39,684 ERROR [stderr] (EJB default - 1)     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)

       

      15:57:39,685 ERROR [stderr] (EJB default - 1)     at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:567)

       

      15:57:39,686 ERROR [stderr] (EJB default - 1)     at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)

       

      15:57:39,686 ERROR [stderr] (EJB default - 1)     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)

       

      15:57:39,687 ERROR [stderr] (EJB default - 1)     at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)

       

      15:57:39,688 ERROR [stderr] (EJB default - 1)     at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)

       

      15:57:39,688 ERROR [stderr] (EJB default - 1)     at com.sanmar.service.ServiceFactory.getApplicationContext(ServiceFactory.java:26)

       

      15:57:39,689 ERROR [stderr] (EJB default - 1)     at com.sanmar.service.ServiceFactory.getValidationService(ServiceFactory.java:37)

       

      15:57:39,689 ERROR [stderr] (EJB default - 1)     at com.sanmar.service.integration.webservice.ejb.ValidationServiceBean.performValidationInventoryService(ValidationServiceBean.java:27)

       

      15:57:39,690 ERROR [stderr] (EJB default - 1)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

       

      15:57:39,691 ERROR [stderr] (EJB default - 1)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

       

      15:57:39,691 ERROR [stderr] (EJB default - 1)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

       

      15:57:39,692 ERROR [stderr] (EJB default - 1)     at java.lang.reflect.Method.invoke(Method.java:597)

       

      15:57:39,692 ERROR [stderr] (EJB default - 1)     at org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72)

       

      15:57:39,693 ERROR [stderr] (EJB default - 1)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

       

      15:57:39,694 ERROR [stderr] (EJB default - 1)     at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)

       

      15:57:39,694 ERROR [stderr] (EJB default - 1)     at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:36)

       

      15:57:39,695 ERROR [stderr] (EJB default - 1)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

       

      15:57:39,695 ERROR [stderr] (EJB default - 1)     at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)

       

      15:57:39,696 ERROR [stderr] (EJB default - 1)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

       

      15:57:39,696 ERROR [stderr] (EJB default - 1)     at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)

       

      15:57:39,697 ERROR [stderr] (EJB default - 1)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

       

      15:57:39,697 ERROR [stderr] (EJB default - 1)     at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)

       

      15:57:39,698 ERROR [stderr] (EJB default - 1)     at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53)

       

      15:57:39,699 ERROR [stderr] (EJB default - 1)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

       

      15:57:39,699 ERROR [stderr] (EJB default - 1)     at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)

       

      15:57:39,700 ERROR [stderr] (EJB default - 1)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

       

      15:57:39,700 ERROR [stderr] (EJB default - 1)     at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:228)

       

      15:57:39,701 ERROR [stderr] (EJB default - 1)     at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:304)

       

      15:57:39,701 ERROR [stderr] (EJB default - 1)     at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:190)

       

      15:57:39,702 ERROR [stderr] (EJB default - 1)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

       

      15:57:39,702 ERROR [stderr] (EJB default - 1)     at org.jboss.as.ejb3.remote.EJBRemoteTransactionPropogatingInterceptor.processInvocation(EJBRemoteTransactionPropogatingInterceptor.java:80)

       

      15:57:39,703 ERROR [stderr] (EJB default - 1)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

       

      15:57:39,704 ERROR [stderr] (EJB default - 1)     at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)

       

      15:57:39,704 ERROR [stderr] (EJB default - 1)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

       

      15:57:39,705 ERROR [stderr] (EJB default - 1)     at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59)

       

      15:57:39,705 ERROR [stderr] (EJB default - 1)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

       

      15:57:39,706 ERROR [stderr] (EJB default - 1)     at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)

       

      15:57:39,707 ERROR [stderr] (EJB default - 1)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

       

      15:57:39,707 ERROR [stderr] (EJB default - 1)     at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45)

       

      15:57:39,708 ERROR [stderr] (EJB default - 1)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

       

      15:57:39,708 ERROR [stderr] (EJB default - 1)     at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)

       

      15:57:39,709 ERROR [stderr] (EJB default - 1)     at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165)

       

      15:57:39,709 ERROR [stderr] (EJB default - 1)     at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.invokeMethod(MethodInvocationMessageHandler.java:300)

       

      15:57:39,710 ERROR [stderr] (EJB default - 1)     at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.access$200(MethodInvocationMessageHandler.java:64)

       

      15:57:39,710 ERROR [stderr] (EJB default - 1)     at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler$1.run(MethodInvocationMessageHandler.java:194)

       

      15:57:39,711 ERROR [stderr] (EJB default - 1)     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)

       

      15:57:39,712 ERROR [stderr] (EJB default - 1)     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

       

      15:57:39,712 ERROR [stderr] (EJB default - 1)     at java.util.concurrent.FutureTask.run(FutureTask.java:138)

       

      15:57:39,713 ERROR [stderr] (EJB default - 1)     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

       

      15:57:39,713 ERROR [stderr] (EJB default - 1)     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

       

      15:57:39,714 ERROR [stderr] (EJB default - 1)     at java.lang.Thread.run(Thread.java:619)

       

      15:57:39,714 ERROR [stderr] (EJB default - 1)     at org.jboss.threads.JBossThread.run(JBossThread.java:122)

       

      15:57:39,715 ERROR [stderr] (EJB default - 1) log4j:ERROR Could not parse url [file:D:/temp/properties/sm-enterprise-log4j.xml].

       

      15:57:39,715 ERROR [stderr] (EJB default - 1) java.lang.NullPointerException

       

      I am using jboss modules and using log4j-1.2.16 module for logging. Can anybody helps me what have I do wrong with configuration or what. I have tried using jboss-deployment-structure.xml file

      <?xml version="1.0" encoding="UTF-8"?>

      <jboss-deployment-structure>

          <deployment>

              <exclusions>

                  <module name="org.apache.log4j" />

              </exclusions>

          </deployment>

          <sub-deployment name="BusinessComponent-1.1.jar">

              <exclusions>

                  <module name="org.apache.log4j" />

              </exclusions>

          </sub-deployment>

          <sub-deployment name="sanmar-services-impl-1.1.jar">

              <exclusions>

                  <module name="org.apache.log4j" />

              </exclusions>

          </sub-deployment>

         

        

      </jboss-deployment-structure>

       

      but no luck.

        • 1. Re: Log4j not working with Jboss 7 AS
          rahatjaan

          The issue is fixed by placing the jboss-deployement-structure.xml file in the META-INF folder in EJB jar. The content of the file is

          <?xml version="1.0" encoding="UTF-8"?>

          <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">

              <deployment>

                 

                  <dependencies>

                     

                      <module name="org.apache.commons.dbcp" />

                      <module name="org.springframework" >

                          <imports>

                                  <include path="META-INF**" />

                                  <include path="org**" />

                          </imports>

                      </module>

                      <!--

                      <module name="com.springsource" />

                       -->

                      <module name="com.sanmar.model" />

                      <module name="com.sanmar.service" />

                      <module name="com.sanmar.dao" />

                      <module name="com.sanmar.util" />

                  </dependencies>

              </deployment>

          </jboss-deployment-structure>

           

          You don't need to exclude log4j nor you need to add it as dependency to your jboss-deployement-structure.xml file.