Log4j的使用
Log4j是Apache的一个开源项目,优点有如下三点:
1. 通过修改配置文件,可以决定log信息的目的地,如控制台,文件,GUI组件。
2. 通过配置文件,可以对输出的信息进行排版。
3. Log4j建议使用四个日志文件的优先级,优先级从高到低分别是ERROR,WARN,INFO,DEBUG。通过定义级别可以控制应用程序中相应级别的日志信息的开关。
一个logger可以包含多个记录器,记录器的格式为:
1.定义根记录器的格式为
log4j.rootLogger = [ level ],appendName1,appendName2…..appendNameN
2.定义一个非根记录器的格式为
log4j.logger.loggerName1 = [ level ], appendName1…..appendNameN
log4j.logger.loggerNameM= [ level ],appendName1…..appendNameN
获得了Logger的实例之后,接下来将配置Log4j使用环境:
语法表示:
PropertyConfigurator.configure(String configFilename):读取使用Java的特性文件编写的配置文件。
DOMConfigurator.configure(String filename):读取XML形式的配置文件。
下面由一个简单的例子说明log4j的使用,
Log4j.properties中的代码:
log4j.rootLogger=[0],B,A
log4j.Logger.log1=[1],B,A
log4j.Logger.log2=[2],B,A
log4j.appender.B = org.apache.log4j.DailyRollingFileAppender
log4j.appender.B.File = error.txt
log4j.appender.B.Append = true
log4j.appender.B.Threshold = error
log4j.appender.B.layout = org.apache.log4j.PatternLayout
log4j.appender.B.layout.ConversionPattern= %p %t %c - %m%n
log4j.appender.A = org.apache.log4j.ConsoleAppender
log4j.appender.A.Target = System.out
log4j.appender.A.layout = org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern= %p %t %c - %m%n
log4j.appender.A.Threshold=info
测试类中的代码:
package org;
import java.io.File;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class LogTest {
public static void main(String[] args) {
Filefile=new File("log4j.properties");
PropertyConfigurator.configure(file.getAbsolutePath());
Logger logger=Logger.getRootLogger();
logger.error("error");
logger.warn("warn");
logger.info("info");
logger.debug("debug");
//根据Logger的层次来,log1的level是1,log2的level是2
Loggerlogger1=Logger.getLogger("log1.log2");
logger1.error("error");
logger1.warn("warn");
logger1.info("info");
logger1.debug("debug");
}
}
项目的层次图: