入门级别,老鸟勿进
- 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>
本文介绍Log4j如何利用多个配置文件实现灵活的日志管理。通过实例展示如何为不同模块配置独立的日志记录方式,并演示如何使用系统属性动态设置输出路径。
803

被折叠的 条评论
为什么被折叠?



