log4j 级别:ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF
log4j.rootLogger=[level],自定义名字1,自定义名字2,...
LOG4J配置文件
#log4j.rootCategory=DEBUG, CONSOLE,DE,ERR
log4j.rootLogger=DEBUG, CONSOLE,DE,ERR
*rootCategory为旧类,rootLogger为新类(建议新类),使用方法基本相同
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender//设置输出的目的地,此时为控制台
#log4j.appender.CONSOLE.Threshold=ERR//Threshold 的优先级大于rootLogger,若设置 CONSOLE(自定义的名字,则输出的最低级别ERR;若不写,则以RootLogger设置为标准
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%p--%m%n
log4j.appender.DE=org.apache.log4j.FileAppender //设置输出的目的地
log4j.appender.DE.File=info.log //设置文件位置 默认在当前项目下
log4j.appender.DE.Append=false//设置是否追加,false为不追加,会先清空上次数据,再写新数据;true为追加,会在原有数据后追加新数据;
log4j.appender.DE.Threshold=INFO//设置可输入到文件的最低级别,该级别及该级别以上都会将数据输入到文件;此时debug无法输入此文件,info,warn,error均会输入此文件
log4j.appender.DE.layout=org.apache.log4j.PatternLayout//设置输出显示样式
log4j.appender.DE.layout.ConversionPattern=%m%n//设置输出的内容(常见内容的释义在末尾,%m文本消息,%n 换行)
log4j.appender.ERR=org.apache.log4j.FileAppender
log4j.appender.ERR.File=err.log
log4j.appender.ERR.Append=false
log4j.appender.ERR.Threshold=ERROR
log4j.appender.ERR.layout=org.apache.log4j.PatternLayout
log4j.appender.ERR.layout.ConversionPattern=%p-%m%n
测试log4j的步骤,(此时在main方法使用)
使用方法,
一、创建Logger类的对象:
方法1.
Logger logger=Logger.getLogger("log4j的路径");
方法2
Logger logger=Logger.gerLogger(Thread.currentThread().getClass());
方法3
Logger logger=Logger.getRootLogger();
PropertyConfigurator.configure("log4j的路径");
二、调用相应方法
logger.debug(“message-->debug”);
logger.info(“message-->dinfo”);
logger.warn(“message-->warn”);
logger.error(“message-->error”);
将不同日志输入到不同文件
log4j.logger.com.test.sxdx=debug,INFO
log4j.appender.INFO=com.test.log4j.Fiapp(自定义的输出目的地,全限定类名),优点:只输入文件的指定级别,需要重写(新建一个类并且继承FileAppender)
log4j.appender.INFO.File=err.log
log4j.appender.INFO.Append=false
log4j.appender.INFO.Threshold=INFO//设置可输入到文件的最低级别,重写后,只将该级别的数据输入到文件;即只将info级别的数据保存到文件
log4j.appender.INFO.layout=org.apache.log4j.PatternLayout
log4j.appender.INFO.layout.ConversionPattern=%p-%m%n
在包名:com.test.log4j新建一个java类Fiapp
public class Fiapp extends FileAppender {
@Override
public boolean isAsSevereAsThreshold(Priority priority) {
return this.getThreshold().equals(priority);
}
}
使用方法,
一、创建Logger类的对象:
方法1.
Logger logger=Logger.getLogger("com.test.sxdx");
logger.info("info");
logger.error("error");
文件只保存info级别的消息
%d : 显示日志记录时间 , 默认时间格式为ISO8601定义的日期格式 ;
%d{yyyy-MM-dd HH:mm:ss} : 按照指定的时间格式显示日期 ;
. %d{ABSOLUTE} : 22:15:30,076 ;
%d{DATE} : 12 Oct 2018 22:15:30,076 ;
%d{ISO8601} : 2018-07-20 22:23:30,076 ;
. %F : 显示调用logger的源文件名 , 例如 : Test.java ;
. %l : 输出日志事件的发生位置 , 包括类目名 , 发生的线程 , 以及在代码中的行数
: %m : 显示输出消息 ;
. %M : 显示调用logger的方法名 ;
. %n : 换行符 ;
: %p : 显示该条目的优先级 ;
. %r : 显示从程序启动时到记录该条日志时已经经过的时间 , 单位毫秒 ;
. %t : 显示产生该日志条目的线程名 ;
%% : 显示一个百分号
版权声明:本文为weixin_42486734原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。