rootLogger是新的使用名称,对应Logger类
rootCategory是旧的使用名称,对应原来的Category类
Logger类是Category类的子类,所以,rootCategory是旧的用法,不推荐使用
例句 : log4j.appender.stdout.layout.ConversionPattern= [QC]?%p [%t]?%C.%M(%L) |?%m%n
%m? 输出代码中指定的消息
%p? 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r? 输出自应用启动到输出该log信息耗费的毫秒数
%t? 输出产生该日志事件的线程名
%n? 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%d? 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日? 22:10:28,921
%l? 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。相当于%C%M(%F:%L)
%L? 只输出在代码中的行数。
%c? 输出所属的类目,通常就是所在类的全名。这个类名是你初始化logger的时候传给logger的类名,即category。若你初始化时的语句如 下:private final Logger log = Logger.getLogger(LogTest.class);则%c所指示的类名为:LogTest。
%c{n} n表示显示的包路径层数,如%c显示:com.spring.login.test,则%c{1}显示:test。而%c{2}显示:login.test。
%C(c大写) 输出日志所属类目的调用者的全类名。此处输出的是调用logger的那个类的名字,比如你有一个类叫:LogCaller,而你在初始化logger是传 给他的参数区却是:LogTest.class。那么使用大写的%C后实际打出的类是调用类,即LogCaller。性能较差,不建议使用。
[QC]是log信息的开头,可以为任意字符,一般为项目简称。
不常用的几个:
%F 输出日志消息产生时所在的文件名称。性能不好,不建议使用
%M 输出日志消息产生时所在的方法名称。性能不好,不建议使用
%x 输出和当前线程相关联的NDC(nested diagnostic context)环境,用于多客户多线程的应用中
%X 输出和当前线程相关联的MDC(mapped diagnostic context)环境。
一些输出格式说明:
可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:
%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。
%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,”-”号指定左对齐。
%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。
%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边将多出的字符截掉。
Threshold=DEBUG:指定日志消息的输出最低层次。
File=mylog.txt:指定消息输出到mylog.txt文件。
MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文件。
MaxBackupIndex=2:指定可以产生的滚动文件的最大数。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
实例:
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = D:/work/test/test.log
log4j.appender.D.DatePattern='.'yyyy-MM-dd-HH-mm ##设置为每分钟产生一个日志文件
log4j.appender.D.Threshold = info ##设置该日志文件记录的日志级别为info及更高级
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern =?%-d{yyyy-MM-dd HH:mm:ss} [?%t:%r ] - [?%p ] ?%m%n
在DailyRollingFileAppender中可以指定monthly(每月)、 weekly(每周)、daily(每天)、half-daily(每半天)、hourly(每小时)和minutely(每分钟)六个频度,这是通过为 DatePattern选项赋予不同的值来完成的。DatePattern选项的有效值为:
'.'yyyy-MM,对应monthly(每月) '.'yyyy-ww,对应weekly(每周) '.'yyyy-MM-dd,对应daily(每天) '.'yyyy-MM-dd-a,对应half-daily(每半天) '.'yyyy-MM-dd-HH,对应hourly(每小时) '.'yyyy-MM-dd-HH-mm,对应minutely(每分钟)