入门级别,老鸟勿进
- log4j可以用多个配置文件 。(多开发组用自己不同的配置文件时很方便)
- 配置文件中能用系统属性 。(动态设定配置的值,比如输出文件路径)
- 配置文件也能放在Jar文件中 一起打包。
net.tianyu.test.log4j.MyMain.java
package net.tianyu.test.log4j;
import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;
public class MyMain {
public static void main(String[] args) {
new MyMain();
}
public MyMain() {
// set system property
System.setProperty("net.tianyu.logfilename", "MyMain");
// load init file
DOMConfigurator.configure(getClass().getResource(
"/conf/log4j/log_conf_core.xml").getPath());
DOMConfigurator.configure(getClass().getResource(
"/conf/log4j/log_conf_ui.xml").getPath());
// get logger
Logger uiLogger = Logger.getLogger("uiLogger");
Logger coreLogger = Logger.getLogger("coreLogger");
uiLogger.fatal("ui fatal");
coreLogger.error("core error");
uiLogger.warn("ui warn");
coreLogger.info("core info");
uiLogger.debug("ui debug");
}
}
conf.log4j.log_conf_ui.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" > <appender name="uiAppender" class="org.apache.log4j.ConsoleAppender"> <param name="Target" value="System.out" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %5p %c{1} - %m%n" /> </layout> </appender> <category name="uiLogger" > <priority value ="info" /> <appender-ref ref="uiAppender" /> </category> </log4j:configuration>
conf.log4j.log_conf_core.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="coreStdoutAppender" class="org.apache.log4j.ConsoleAppender"> <param name="Target" value="System.out" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %5p %c{1} - %m%n" /> </layout> </appender> <appender name="coreFileAppender" class="org.apache.log4j.FileAppender"> <param name="File" value="${net.tianyu.logfilename}_mylog.log" /> <param name="Append" value="true" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %5p %c{1} - %m%n" /> </layout> </appender> <category name="coreLogger"> <priority value="info" /> <appender-ref ref="coreStdoutAppender" /> <appender-ref ref="coreFileAppender" /> </category> </log4j:configuration>