I wanted to use multiple logger on single appender.
Suppose i have 3 different logger for 3 different library i use in my project.
But i want to put all log of those library in single file. which is not working right now.
I looked at below stackoverflow question but i couldn't do same in Java( this question is answered for grails )
Using multiple loggers on a single appender
Here is my log4j.xml file :-
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true"
xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1} - %m%n"/>
</layout>
</appender>
<appender name="fileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="${log.file}" />
<param name="append" value="true" />
<param name="encoding" value="UTF-8" />
<param name="MaxFileSize" value="50MB"/>
<param name="MaxBackupIndex" value="20"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m%n" />
</layout>
</appender>
<appender name="ASYNC" class="org.apache.log4j.AsyncAppender" >
<param name="BufferSize" value="500000"/>
<param name="Blocking" value="false"/>
<appender-ref ref="fileAppender"/>
</appender>
<logger name="ABCDEF" additivity="false">
<level value="INFO"/>
<appender-ref ref="fileAppender"/>
</logger>
<logger name="GHIJKLM" additivity="false">
<level value="INFO"/>
<appender-ref ref="ASYNC"/>
</logger>
<logger name="NOPQURST" additivity="false">
<level value="INFO"/>
<appender-ref ref="ASYNC"/>
</logger>
</log4j:configuration>
So how to do in Java?
NOTE :-
I cannot move to other logging like slf4j.
After sinclair's comment :-
This question explains about root logger . I want to make one custom appender for entire application which can be used by multple loggers.
EDIT 2
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true"
xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1} - %m%n"/>
</layout>
</appender>
<appender name="fileAppender" class="org.apache.log4j.RollingFileAppender">
<!-- The active file to log to -->
<param name="file" value="${log.file}" />
<param name="append" value="true" />
<param name="encoding" value="UTF-8" />
<!-- Max File Size 50MB-->
<param name="MaxFileSize" value="50MB"/>
<!-- Keep 20 backup files -->
<param name="MaxBackupIndex" value="20"/>
<layout class="org.apache.log4j.PatternLayout">
<!-- The log message pattern -->
<param name="ConversionPattern" value="%m%n" />
</layout>
</appender>
<appender name="ASYNC" class="org.apache.log4j.AsyncAppender" >
<param name="BufferSize" value="500000"/>
<param name="Blocking" value="false"/>
<appender-ref ref="fileAppender"/>
</appender>
<appender name="customAppender" class="org.apache.log4j.AsyncAppender">
<appender-ref ref="fileAppender" />
</appender>
<logger name="com.company.project" additivity="false">
<level value="INFO"/>
<appender-ref ref="customAppender"/>
</logger>
<logger name="org.jboss.netty" additivity="false">
<level value="INFO" />
<appender-ref ref="customAppender" />
</logger>
<root>
<priority value="INFO" />
<appender-ref ref="consoleAppender" />
</root>
</log4j:configuration>
This the file i am using... Still any error or exception related to org.jboss.netty
will go in out
file not logfile.
Any more help????