2
votes

I am using log4j.xml in my application.My log4j file is in my WEB-INF folder. When I deploy the same application in glassfish and in tomcat the logger logs in file and console as well, it also create rolling file appender. The problem is when I deploy the same application in WEB Sphere 8.5 logger does not log exceptions or errors, it only logs the debug/info messages.It also create rolling file every day. I am using spring integration framework for my application.

My log4j.xml

    <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<!-- <!DOCTYPE log4j:configuration SYSTEM "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd"> -->
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <!-- Appenders -->
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <param name="Target" value="System.out" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{HH:mm:ss.SSS} %-5p [%t][%c] %m%n" />
        </layout>
    </appender>
 <appender name="RollingAppender" class="org.apache.log4j.DailyRollingFileAppender">
       <param name="File" value="my.log"/>
       <param name="MaxFileSize" value="20MB" />
        <param name="MaxBackupIndex" value="40" />
       <param name="DatePattern" value="'.'yyyy-MM-dd" />
       <layout class="org.apache.log4j.PatternLayout">
          <param name="ConversionPattern" value="[%p] %d %c %M - %m%n"/>          
       </layout>
    </appender>
    <!-- Loggers -->
    <logger name="org.springframework">
        <level value="ALL" />
    </logger>
    <logger name="org.springframework.integration">
        <level value="ALL" />
    </logger>

    <logger name="com.mycompany.myapplication">
        <level value="debug" />
    </logger>

    <!-- Root Logger -->
    <root>
        <priority value="ALL" />
        <appender-ref ref="console" />
        <priority value="ALL"/>
        <appender-ref ref="RollingAppender" />
    </root>

</log4j:configuration>

my.log

 [INFO] ****-**-** 09:57:59,750 com.mycompany.myapplication.h.GNH icn - ******
[INFO] ****-**-** 09:57:59,751 com.mycompany.myapplication.h.GNH number - number  ****
[INFO] ****-**-** 09:57:59,751 com.mycompany.myapplication.h.GNH number - 010114
[INFO] ****-**-** 09:57:59,751 com.mycompany.myapplication.h.GNH number - 2014
[INFO] ****-**-** 09:57:59,751 com.mycompany.myapplication.h.GNH number - number -->010114
[INFO] ****-**-** 09:57:59,752 com.mycompany.myapplication.h.GNH **** - number 010114
[INFO] ****-**-** 09:57:59,755 com.mycompany.myapplication.h.GNH **** - ********46
[INFO] ****-**-** 09:57:59,755 com.mycompany.myapplication.h.GNH **** - number *****46
[INFO] ****-**-** 09:57:59,755 com.mycompany.myapplication.h.GNH **** - number ******
[DEBUG] ****-**-** 09:57:59,758 com.mchange.v2.resourcepool.BasicResourcePool awaitAcquire - awaitAvailable(): [unknown]
[DEBUG] ****-**-** 09:57:59,758 com.mchange.v2.resourcepool.BasicResourcePool trace - trace com.mchange.v2.resourcepool.BasicResourcePool@67839a5c [managed: 0, unused: 0, excluded: 0]
[WARN] ****-**-** 09:58:13,287 com.mchange.v2.async.ThreadPoolAsynchronousRunner run - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@bcbb4afc -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
[WARN] ****-**-** 09:58:13,331 com.mchange.v2.async.ThreadPoolAsynchronousRunner run - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@bcbb4afc -- APPARENT DEADLOCK!!! Complete Status: [num_managed_threads: 3, num_active: 0; activeTasks: ; pendingTasks: com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@9a3e206d]
[INFO] ****-**-** 10:12:14,846 com.mycompany.myapplication.h.GNH icn - Incremented by *******
[INFO] ****-**-** 10:12:14,846 com.mycompany.myapplication.h.GNH number - number****
[INFO] ****-**-** 10:12:14,847 com.mycompany.myapplication.h.GNH number - number -->010114
[INFO] ****-**-** 10:12:14,847 com.mycompany.myapplication.h.GNH number - number ****
[INFO] ****-**-** 10:12:14,847 com.mycompany.myapplication.h.GNH number - number -->010114
[INFO] ****-**-** 10:12:14,847 com.mycompany.myapplication.h.GNH **** - number 010114
[INFO] ****-**-** 10:12:14,851 com.mycompany.myapplication.h.GNH **** - ********47
[INFO] ****-**-** 10:12:14,851 com.mycompany.myapplication.h.GNH **** - number *****47
[INFO] ****-**-** 10:12:14,851 com.mycompany.myapplication.h.GNH **** - number number****
[INFO] ****-**-** 10:26:11,437 com.mycompany.myapplication.h.GNH icn - Incremented Value*****
[INFO] ****-**-** 10:26:11,437 com.mycompany.myapplication.h.GNH number - number Mon ***
[INFO] ****-**-** 10:26:11,437 com.mycompany.myapplication.h.GNH number - number -->010114
[INFO] ****-**-** 10:26:11,438 com.mycompany.myapplication.h.GNH number - number Mon ****
[INFO] ****-**-** 10:26:11,438 com.mycompany.myapplication.h.GNH number - number -->010114
[INFO] ****-**-** 10:26:11,438 com.mycompany.myapplication.h.GNH **** - number 010114
[INFO] ****-**-** 10:26:11,443 com.mycompany.myapplication.h.GNH **** - ********48
[INFO] ****-**-** 10:26:11,444 com.mycompany.myapplication.h.GNH **** - number *****48
[INFO] ****-**-** 10:26:11,444 com.mycompany.myapplication.h.GNH **** - number number***** 048

I followed the following link but the problem is still same: http://www-01.ibm.com/support/docview.wss?uid=swg27004610&aid=1 Please provide input for the above issue.


Updated:

Please find below my web.xml:

<context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>/WEB-INF/log4j.xml</param-value>
    </context-param>
    <context-param>
        <param-name>log4jExposeWebAppRoot</param-name>
        <param-value>false</param-value>
    </context-param>
    <context-param>
        <param-name>log4jRefreshInterval</param-name>

        <param-value>1000</param-value>
    </context-param>

    <!-- Log4jConfigListener config listener -->
    <listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>
    <listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>
1
where exactly is your log4j.xml in WEBINF? do u think there are any other log4j.xml's in your classpath?..also whats the output when you change 'level' value to 'ALL'to you "com.mycompany.myapplication" logger?M..
Thanks for your input Abhin and for your quick reply too.I have updated post with web.xml and I am sure that there is no other log4j.xml in my classpath.Due to some reasons I may be able to post you logs later with Log level "ALL".Anish Lodhi

1 Answers

0
votes

Had the same problem.
Websphere cant find your xml just because its in your war though it should.
You need to either load file by explicitly giving name and location in your code, or put xml in a folder and add this folder to classpath in your server configurations.
We use a completely different folder to keep config files like /projects/ and load file in a static block.