原文https://www.cnblogs.com/qlqwjy/p/9275415.html
1.配置文件(log4j.properties)
log4j.rootLogger=debug, C log4j.appender.A=org.apache.log4j.ConsoleAppender log4j.appender.A.layout=org.apache.log4j.PatternLayout log4j.appender.A.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n log4j.appender.B=org.apache.log4j.FileAppender log4j.appender.B.File=E:\\log.log log4j.appender.B.layout=org.apache.log4j.SimpleLayout log4j.appender.C=org.apache.log4j.RollingFileAppender log4j.appender.C.File=E:\\log.html log4j.appender.C.MaxFileSize=1000KB log4j.appender.C.MaxBackupIndex=10 log4j.appender.C.layout=org.apache.log4j.HTMLLayout log4j.appender.C.encoding=gbk log4j.appender.D=org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File=E:\\log.log log4j.appender.D.layout=org.apache.log4j.TTCCLayout
注意:
1.如果需要输出到多个位置的时候可以逗号隔开,比如: log4j.rootLogger=info, A, B
2. log4j.appender.C.encoding=gbk 的配置是为了解决中文乱码,有时候也可以设置为UTF-8试试
%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss,SSS},SSS为毫秒数(也可以写为SS,只不过SSS如果不足三位会补0),输出类似:2011-10-18 22:10:28,021
%r: 输出自应用启动到输出该日志耗费的毫秒数
%t: 输出产生日志的线程名称
%l: 输出日志事件的位置,相当于%c.%M(%F:L)的组合,包括类全名、方法、文件名以及在代码中行数。例如:cn.xm.test.PlainTest.main(PlanTest.java:12)
%c: 输出日志信息所属的类目,通常就是所在类的全名。可写为%c{num},表示取完整类名的层数,从后向前取,比如%c{2}取 "cn.qlq.exam"类为"qlq.exam"。
%M: 输出产生日志信息的方法名%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中 %%: 输出一个"%"字符 %F: 输出日志消息产生时所在的文件名称 %L: 输出代码中的行号 %m: 输出代码中指定的消息,产生的日志具体信息 %n: 输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"输出日志信息换行