简体   繁体   中英

How to maintain Multiple log4j.xml configuration file

How to maintain multiple log4j.xml configuration files in one webapplication.

Eg:- In Servlet:-

 public void init(ServletConfig arg0) throws ServletException {
       PropertyConfigurator.configure("/home/madhavib/Desktop/Nar/Raju/log4j.properties");
 }

In Jsp:-

 public void jspInit() {

      DOMConfigurator.configure("/home/madhavib/Desktop/Nar/log4j.xml"); 
}

In another Jsp:-

public void jspInit() {

     DOMConfigurator.configure("/home/madhavib/Desktop/Nar/log4j.xml"); 
}




**log4j configuration files (loaded in jsp 1):** 

<!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="FileAppender"
  class="org.apache.log4j.FileAppender" >
  <!-- <param name="threshold" value="debug" /> -->
  <param name="File" value="/home/madhavib/apache-tomcat-7.0.42/logs/EntelProject/infojsp333.log" />
  <param name="DatePattern" value="'.'yyyy-MM-dd" />
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern"
    value="%d %-5p [%t] %c{5}- %m%n" />
  </layout>
   <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="debug" />
            <param name="LevelMax" value="warn" />
            <param name="AcceptOnMatch" value="true" />
        </filter>
  <!-- <MarkerFilter marker="FLOW" onMatch="ACCEPT" onMismatch="DENY"/> -->
 </appender>




<appender name="console" class="org.apache.log4j.ConsoleAppender">
     <layout class="org.apache.log4j.PatternLayout">
  <param name="ConversionPattern" 
    value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
     </layout>
</appender>



 <logger name="org.apache.jsp">
    <appender-ref ref="console"/>
  <appender-ref ref="FileAppender"/>
</logger> 
 <!--<root>

  <appender-ref ref="FileAppender"/>
</root> -->
  <logger name="pe1.com1.nextel1">
   <level value="info"/>
<appender-ref ref="FileAppender"/>


</logger> 

</log4j:configuration>

**log4j confuguration (loaded in jsp 2) :-**

<?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="FileAppender"
  class="org.apache.log4j.FileAppender" >
  <!-- <param name="threshold" value="debug" /> -->
  <param name="File" value="/home/madhavib/apache-tomcat-7.0.42/logs/EntelProject/examplejsp.log" />
  <param name="DatePattern" value="'.'yyyy-MM-dd" />
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern"
    value="%d %-5p [%t] %c{5}- %m%n" />
  </layout>
   <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="debug" />
            <param name="LevelMax" value="warn" />
            <param name="AcceptOnMatch" value="true" />
        </filter>
  <!-- <MarkerFilter marker="FLOW" onMatch="ACCEPT" onMismatch="DENY"/> -->
 </appender>




<appender name="console" class="org.apache.log4j.ConsoleAppender">
     <layout class="org.apache.log4j.PatternLayout">
  <param name="ConversionPattern" 
    value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
     </layout>
</appender>



 <logger name="org.apache.jsp">
    <appender-ref ref="console"/>
  <appender-ref ref="FileAppender"/>
</logger> 

  <logger name="pe.com.nextel">
   <level value="info"/>
<appender-ref ref="FileAppender"/>


</logger> 

</log4j:configuration>

**log4jconfiguration file(loaded in servlet) :-**


<?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="FileAppender"
  class="org.apache.log4j.FileAppender" >
  <!-- <param name="threshold" value="debug" /> -->
  <param name="File" value="/home/madhavib/apache-tomcat-7.0.42/logs/EntelProject/examplejsp.log" />
  <param name="DatePattern" value="'.'yyyy-MM-dd" />
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern"
    value="%d %-5p [%t] %c{5}- %m%n" />
  </layout>
   <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="debug" />
            <param name="LevelMax" value="warn" />
            <param name="AcceptOnMatch" value="true" />
        </filter>
  <!-- <MarkerFilter marker="FLOW" onMatch="ACCEPT" onMismatch="DENY"/> -->
 </appender>




<appender name="console" class="org.apache.log4j.ConsoleAppender">
     <layout class="org.apache.log4j.PatternLayout">
  <param name="ConversionPattern" 
    value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
     </layout>
</appender>



 <logger name="org.apache.jsp">
    <appender-ref ref="console"/>
  <appender-ref ref="FileAppender"/>
</logger> 

  <logger name="pe.com.nextel">
   <level value="info"/>
<appender-ref ref="FileAppender"/>


</logger> 

</log4j:configuration>

How to maintain multiple log4j.xml configuration files in one webapplication.

i have given log4j configuration information files , please look into that and tell me the how to proper develop with multiple log4j files.

You can pass multiple log4j configuration files in some ways:

  1. You can set System properties :

    System.setProperty("log4j2.configurationFile", "log4j2-1.xml,log4j2-2.xml");

  2. You can put configuration files as "log4j2.component.properties" under resource section and define system property as follows :

    log4j2.configurationFile=log4j2-1.xml,log4j2-2.xml

Please check official documentation for system properties

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM