log4j.properties
在log4j.properties文件中,日志输出是分层的。
根Logger
log4j.rootLogger = [level], appenderName1, appenderName2
level有OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL或自定义级别
还有一个log4j.rootCategory。Category是Logger的父类,所以建议使用Logger。
输出目的地
log4j.appender.appenderName1 = classInfo
log4j.appender.appenderName1.option1 = value1
log4j.appender.appenderName2.option2 = value2
classInfo指的是log4j提供的appender类,有:
org.apache.log4j.ConsoleAppender --->输出到控制台
org.apache.log4j.FileAppender --->输出到文件
org.apache.log4j.DailyRollingFileAppender -->每天产生一个文件
org.apache.log4j.RollingFileAppender -->文件到达一定大小产生新文件
org.apache.log4j.WriterAppender -->将日志以流的方式发送的任意地方
option属性有:
layout:输出格式
target:输出的目标
输出格式
log4j.appender.appenderName1.layout = classInfo
log4j.appender.appenderName1.layout.option1 = value1
log4j.appender.appenderName1.layout.option2 = value2
classInfo有:
org.apache.log4j.HTMLLayout 以HTML表格形式布局
org.apache.log4j.PatternLayout 自定义
org.apache.log4j.SimpleLayout 包含日志信息和级别的字符串
org.apache.log4j.TTCCLayout 包含日志产生的时间,线程,类别等信息
PatternLayout自定义模式:
属性:conversionPattern
格式符号:
%c 输出全称类名,如com.xyz.Test
%c{2} 输出xyz.Test
%C 与上面一样
%d 用于输出日期
%d{dd MM yyyy HH:mm:ss,SSS} 日 月 年 时:分:秒,毫秒
%F 文件名
%l 输出位置(类,方法,行)
%L 行号
%m 要记录的信息
%M 方法
%n 换行
%p 优先级,也就是level
%r 距离上一条日志生成的时间
%t 线程名称
%x
%X 这俩待测
%20c 类名长度少于20,空格左填充
%-20c 类名长度少于20,空格右填充
%.30c 类名长度超过30,左截断
%20.30c 类名长度少于20,空格左填充;长度大于30,左截断
包输出级别
可以设置不同package的日志输出级别
log4j.logger.packageName/className/methodName = level
可以是包名,类名甚至是方法名。但是要用全称。