Log4j配置
配置文件
- XML文件格式
- Properties文件格式
配置示例
log4j.rootCategory=INFO,console,file
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[${system}][%X{function}][%d{yy/MM/dd HH:mm:ss.SSS}][%3t][%5p][%c{1}.%M(%L)] : %m%n
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=C:/mlog.txt
log4j.appender.file.Threshold=ERROR
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss.SSS}][%3t][%4p][%c{1}.%M(%L)] : %m%n
log4j.logger.cn.doubly=INFO
配置详解
-
log4j.rootCategory=INFO,console,file
指定默认日志级别 INFO
指定日志输出目标 console和file,这两个名称是自定义的 -
log4j.appender.console=org.apache.log4j.ConsoleAppender
指定输出目标console的实现类 -
log4j.appender.console.layout=org.apache.log4j.PatternLayout
指定输出目标console的日志格式布局类型 -
log4j.appender.console.layout.ConversionPattern
指定输出目标console的日志具体格式 -
log4j.appender.file =org.apache.log4j.DailyRollingFileAppender
指定输出目标file的实现类 -
log4j.appender.file.File=C:/mlog.txt
指定输出目标file的输出文件位置 -
log4j.appender.file.Threshold=ERROR
指定输出目标file的最低日志级别 -
log4j.logger.cn.doubly=INFO
指定包cn.doubly下class的日志级别
日志级别
- debug
- info
- warn
- error
- fatal
输出目标类型
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
输出端格式布局类型
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
ConversionPattern标准参数
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%t 输出产生该日志事件的线程名
%c 输出所属的类目,通常就是所在类的全名
%m 输出代码中指定的消息
%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
%d 输出日志时间点的日期或时间,比如:%d{yyyy/mm/dd HH:mm:ss,SSS}
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数
ConversionPattern特殊参数
系统环境变量
添加JVM参数 -DparamName=paramValue
在配置文件中引用 ${paramName}
MDC变量
上下文信息每个线程独立存储
通过方法 MDC.put(key, value) 存储信息 增加TransantionId
在配置文件中引用 %X{key}
通过方法 MDC.remove(key) 清除信息
配置加载方式
自动加载
将log4j.properties置于classpath根路径下
设定环境变量
-Dlog4j.configuration=[log4j配置文件路径]
-Dlog4j.configuratorClass=[log4j配置加载器]
-Dlog4j.watchDelay=[log4j配置文件重加载间隔]
编程加载
PropertyConfigurator.configureAndWatch()
PropertyConfigurator.configure()
PropertyConfigurator 和 DOMConfigurator 是两个功能类似的class, 一个用于加载property格式,一个用于加载xml格
日志输出方式
-
声明类成员变量Logger
-
通过Logger的debug,info,warn,error,fatal方法输出日志
示例:
public class Test {
private static Logger log = Logger.getLogger(Test.class);
public void sayHello(String name) {
log.info(“name=” + name);
}
}