最近写了一些Java多线程的程序,学到log4j打印出线程号和方法名,分享一下~
使用 %t 就可以打印线程名称,这样开发的时候就可以看到线程执行情况了;
先参考实现配置,如果想要更加详细的配置,可加上更多参数:
log4j.rootLogger = INFO,FILE,CONSOLE
log4j.appender.FILE.Threshold=INFO
log4j.appender.FILE.encoding=UTF-8
log4j.appender.FILE = org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.File=d:/logtest/logtest.log
log4j.appender.FILE.ImmediateFlush=true
log4j.appender.FILE.DatePattern=’_'yyyy-MM-dd
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d %5p %t (%c.%M:%L) - %m%n
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=INFO
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p %t (%c.%M:%L) - %m%n
#log4j.appender.CONSOLE.layout.ConversionPattern=%-d{yyyy/MM/dd HH:mm:ss} OSS %-5p [%c] - %m%n
其他参数:
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 :10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。