My package is com.mycompany.mypackage - i.e. classes are com.mycompany.MyClass etc. I'd like to log INFO from my package in a dedicated log file, using log4j. I need to use the XML configuration for reasons beyond the scope of this question.
I thought I could set it up thus:
--------8<--------
<?xml version="1.0" encoding= "UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="
http://jakarta.apache.org/log4j/"
>
<appender name="stdout" class="org.apache.log4j.Co
nsoleAppen
der">
<layout class="org.apache.log4j.Pa
tternLayou
t">
<param name="ConversionPattern" value="%d %p [%c] - <%m>%n"/>
</layout>
</appender>
<appender name="logfile" class="org.apache.log4j.Ro
llingFileA
ppender">
<param name="Threshold" value="DEBUG"/>
<param name="Append" value="true"/>
<param name="MaxFileSize" value="512KB"/>
<param name="MaxBackupIndex" value="5"/>
<param name="ImmediateFlush" value="true"/>
<!-- file parameter is taken from the XML fragment, which is environment-specific -->
<param name="File" value="mypackage.log"/>
<layout class="org.apache.log4j.Pa
tternLayou
t">
<param name="ConversionPattern" value="%d %p [%c] - %m%n"/>
</layout>
</appender>
<logger name="com.mycompany.mypack
age">
<level value="info"/>
<appender-ref ref="logfile"/>
<appender-ref ref="stdout"/>
</logger>
<root>
<priority value="warn"/>
<appender-ref ref="stdout"/>
</root>
</log4j:configuration>
--------8<--------
However, I don't get enything going into my log file. It remains 0 bytes.
Here's how I initialise the logger in my class:
--------8<--------
package com.mycompany.mypackage;
import org.apache.commons.logging
.Log;
import org.apache.commons.logging
.LogFactor
y;
pubic class MyClass {
static final Log log = LogFactory.getLog(MyClass.
class);
// ....
}
--------8<--------
What am I doing wrong?