1 Reply Latest reply: May 9, 2012 9:55 AM by Rahat Ali RSS

Log4j not working with Jboss 7 AS

Rahat Ali Newbie

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
    Rahat Ali Newbie

    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.