I have implement a log4j.xml file having two loggers.
Both EventLogger and ErrorLogger logged in to textfile. Also I create console appender and appended it to the root. My problem is when I use EventLogger or ErrorLogger it both write to the console and to the text file also. I need to avoid that. Can some one please help me.
Following I have showed you the xml file
<?xml version="1.0" encoding="UTF-8" ?>
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="ErrorAPPENDER" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="./log/FIX5SvrError.log"/>
<param name="Append" value="true"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-4r [%t] %-5p %x - %m%n" />
</layout>
</appender>
<appender name="EventAPPENDER" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="./log/FIX5SvrEvent.log"/>
<param name="Append" value="true"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-4r [%t] %-5p %x - %m%n" />
</layout>
</appender>
<appender name="ConsoleAPP" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m%n"/>
</layout>
</appender>
<logger name="ErrorLogger">
<level value="debug"/>
<appender-ref ref="ErrorAPPENDER" />
</logger>
<logger name="EventLogger">
<level value="debug"/>
<appender-ref ref="EventAPPENDER" />
</logger>
<root>
<priority value ="debug" />
<appender-ref ref="ConsoleAPP" />
</root>
</log4j:configuration>
For the loggers whose output you don’t want percolating up, you need to set additivity = false.
Search for additivity in the manual for more details.