Use JBoss 7 , Java 6.
My log4j.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- general application log -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out"/>
<param name="Threshold" value="info"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1} --> %m%n"/>
</layout>
</appender>
<!-- additional logging -->
<appender name="util" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="${user.home}/bs/logs/login.log"/>
<param name="MaxFileSize" value="100KB"/>
<param name="MaxBackupIndex" value="100"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{HH:mm:ss} %m%n"/>
</layout>
</appender>
<logger name="ru.bs.web" additivity="false">
<appender-ref ref="console"/>
</logger>
<logger name="ru.bs.web.security">
<appender-ref ref="util"/>
</logger>
<root>
<level value="INFO"/>
</root>
</log4j:configuration>
Problem :
I want make via log4j logging all application from ru.bs.web package use console appender, and logging from ru.bs.web.security in file.
How to exclude package ru.bs.web.security from console appender ?
I'm use config from How do I configure log4j using log4j.xml to append to different log files based on class name? but it dont work.
I SOLVED!
My XML config is here :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="false" xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- general application log -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out"/>
<param name="Threshold" value="info"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1} --> %m%n"/>
</layout>
</appender>
<appender name="file" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="${user.home}/bs/logs/login.log"/>
<param name="MaxFileSize" value="100MB"/>
<param name="MaxBackupIndex" value="10000"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{HH:mm:ss} %m%n"/>
</layout>
</appender>
<logger name="ru.bs.web.security" additivity="false">
<level value="LOGIN" class="ru.bs.web.util.LoginLevel"/>
<appender-ref ref="file"/>
</logger>
<root>
<level value="info"/>
<appender-ref ref="console"/>
<appender-ref ref="file"/>
</root>
</log4j:configuration>
and ru.bs.web.util.LoginLevel class :
public class LoginLevel extends Level {
private static final long serialVersionUID = 1L;
public static final int LOGIN_INT = INFO_INT + 100 ;
public static final Level LOGIN = new LoginLevel(LOGIN_INT,"LOGIN",6);
protected LoginLevel(int level, String levelStr, int syslogEquivalent) {
super(level, levelStr, syslogEquivalent);
}
}
run it with - log.log(LoginLevel.LOGIN, "from LOGGER!");