Reputation: 1264
I use log4j.getRootLogger().getAppender("FICWARN")
in my Java code, but I can't get the path of the FileAppender.
How can I get the name of the file where my messages are written ?
Upvotes: 0
Views: 304
Reputation: 1246
It is the file you defined in your log4j.propertiers or log4j.xml.
Better log like this:
private static final Logger = LoggerFactory.getLogger(classname.class);
// or for specific channels
private static final Logger = LoggerFactory.getLogger("FICWARN");
Now define an appender in your log4j
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %c{1} - %m%n"/>
</layout>
</appender>
<appender name="FICWARN" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="ficwarn.log"/>
<param name="MaxFileSize" value="100KB"/>
<!-- Keep one backup file -->
<param name="MaxBackupIndex" value="1"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%p %t %c - %m%n"/>
</layout>
</appender>
<logger name="FICWARN">
<level value="info"/>
<appender-ref ref="FICWARN" />
</logger>
<root>
<priority value ="debug" />
<appender-ref ref="console" />
</root>
</log4j:configuration>
Now your messages would go either to console (classname) or to ficwarn.log (String = "FICWARN").
Upvotes: 1