Define loggers and appenders for each war! Then if you see that messages get 
logged twice find who is logging it. Then set the additivity for that logger to 
false, and that's prevents that logrecords from this identified logger are 
propagated upward in the logger hierarchy to the next more common logger. Look 
to loggers as a tree where only the loggeers at the leafe positioon shall log 
and by using additivity=false for that logger the leave logger will not 
propagate the message to the trees and more toward the root logger.

My apps has many loggers .....

# -------------------------------------------------------------------
#- Set your loggers priority to what you need -----------------------
#     Logger logging             WHAT it logs   WHO is actually logging
log4j.logger.org.apache.catalina=INFO,          CONSOLE, R, CHAINSAW_CLIENT
log4j.logger.org.apache.coyote=INFO,            CONSOLE, R, CHAINSAW_CLIENT
log4j.logger.org.apache.jasper=INFO,            CONSOLE, R, CHAINSAW_CLIENT
log4j.logger.org.apache.jk=INFO,                CONSOLE, R, CHAINSAW_CLIENT
log4j.logger.org.apache.tomcat=INFO,            CONSOLE, R, CHAINSAW_CLIENT
log4j.logger.org.apache.commons=INFO,           CONSOLE, R, CHAINSAW_CLIENT
log4j.logger.org.apache.axiom=WARN,             CONSOLE, R, CHAINSAW_CLIENT
log4j.logger.org.apache.axis2=INFO,             CONSOLE, R, CHAINSAW_CLIENT
log4j.logger.org.apache.axis2.deployment=DEBUG, CONSOLE, R, CHAINSAW_CLIENT
log4j.logger.de.hunsicker.jalopy.io=FATAL,      CONSOLE, R, CHAINSAW_CLIENT
log4j.logger.httpclient.wire.header=FATAL,      CONSOLE, R, CHAINSAW_CLIENT

# -------------------------------------------------------------------
#- create the SpServer Logger ---------------------------------------
# this is the CONFIGURED logger for the SpServer.java JavaPart
# the Configurator strips of the logger_prefix "log4j.logger."
#  the logger is then known in the hierarchy as
#   "axawl.spezpla.servers.SpezplaService.SpServer"
#    retrive this configured logger from log4j.hierarchy through
#     Logger log = Logger.getLogger(SpServer.class);
log4j.logger.axawl.spezpla.servers.SpezplaService.SpServer=INFO, LOGFILE, 
CHAINSAW_AXIS2


# -------------------------------------------------------------------
# define the additivities used to prevent logging twice the same msg
# NOTE: each logger needs an additivity set or you risk logging twice
#
log4j.additivity.org.apache.axiom=false
log4j.additivity.org.apache.axis2=false
log4j.additivity.org.apache.axis2.deployment=false
log4j.additivity.org.apache.catalina=false
log4j.additivity.org.apache.coyote=false
log4j.additivity.org.apache.jasper=false
log4j.additivity.org.apache.jk=false
log4j.additivity.org.apache.commons=false


# to prevent that logging events are propagated to parent loggers
# and finally arrive at the root loggers appender, printed to the root-
# loggers files i.e. additivity must be set to false to prevent this.
# please goto http://logging.apache.org/log4j/1.2/manual.html and read
# the short manual or buy the full manual
log4j.additivity.axawl.spezpla.servers.SpezplaService.SpServer=false

Josef


-----Ursprüngliche Nachricht-----
Von: Melih U. Ünsal [mailto:[email protected]] 
Gesendet: Dienstag, 21. Juni 2011 17:03
An: [email protected]
Betreff: configuring individually loggingf for every war application in an ear 
project

My ear project consists of two war applications. i want to create logs
individually for every war. i mean every war projects must create its own
logs. But, because of they run in the same jvm, i am not sure whether it is
possible or not.
how can i handle this issue?

By the way, the war applications are spring projects.

i created two log4j config files (log4j_app1.xml and log4j_app2.xml) and
instantiated them in the applicationcontexts but it did not solve the
problem.

WAR_APP1 applcaitoncontext.xml :

<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>/config/log4j_app1.xml</value>
    </list>
    </property>
</bean>


WAR_APP2 applcaitoncontext.xml :

<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>/config/log4j_app2.xml</value>
    </list>
    </property>
</bean>


log4j_app1.xml

<?xml version="1.0" encoding="UTF-8"?>
<!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/";>

    <appender name="appender"
class="org.apache.log4j.DailyRollingFileAppender">
        <param name="DatePattern" value="'.'yyyy-MM-dd"/>
        <param name="File" value="/logs/app1/app1.log"/>
        <param name="Append" value="true"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %p - %m%n"/>
        </layout>
    </appender>

    <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  - %5p %c{1} - %m%n"/>
        </layout>
    </appender>

    <root>

        <priority value="info"/>
        <appender-ref ref="appender"/>
        <appender-ref ref="console"/>

    </root>

</log4j:configuration>
log4j_app2.xml

<?xml version="1.0" encoding="UTF-8"?>
<!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/";>

    <appender name="appender_ui"
class="org.apache.log4j.DailyRollingFileAppender">
        <param name="DatePattern" value="'.'yyyy-MM-dd"/>
        <param name="File" value="/logs/app2/app2.log"/>
        <param name="Append" value="true"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %p - %m%n"/>
        </layout>
    </appender>

    <appender name="console_ui" class="org.apache.log4j.ConsoleAppender">
        <param name="Target" value="System.out"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d  - %5p %c{1} - %m%n"/>
        </layout>
    </appender>

    <root>

        <priority value="info"/>
        <appender-ref ref="appender_ui"/>
        <appender-ref ref="console_ui"/>

    </root>

</log4j:configuration>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to