使用配置文件
log4j.rootCategory=DEBUG, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout #输出格式 log4j.appender.stdout.layout.ConversionPattern=%p [%t] %C.%M(%L) | %m%n
log4j的输出如下
DEBUG [main] LogTest.main(9) | I'm DEBUG
INFO [main] LogTest.main(10) | I'm INFO
WARN [main] LogTest.main(11) | I'm WARN
ERROR [main] LogTest.main(12) | I'm ERROR
FATAL [main] LogTest.main(13) | I'm FATAL
i'm syso
对于有强迫症的同学来说,上面的输出看起来有点别扭,现在更改配置如下
log4j.rootCategory=DEBUG, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%-5p\: %d{HH\:mm\:ss,SSS} %C{1}[ln\:%L]\: %m%n
输出如下
DEBUG: 14:30:19,022 LogTest[ln:9]: I'm DEBUG
INFO : 14:30:19,027 LogTest[ln:10]: I'm INFO
WARN : 14:30:19,027 LogTest[ln:11]: I'm WARN
ERROR: 14:30:19,028 LogTest[ln:12]: I'm ERROR
FATAL: 14:30:19,028 LogTest[ln:13]: I'm FATAL
i'm syso
现在看起来舒服点。
Log4j中常用的参数表:
参数 | 描述 | 实例 |
c | 输出Logger所在的类别(即Logger的名字)。 允许使用%c{数字}输出部分的名字(从右边往左边数)。见实例 | %c将输出com.log4j.Log4jTest %c{1}将输出Log4jTest %c{2}将输出log4j.Log4jTest %c{3}将输出com.log4j.Log4jTest |
C | 输出Logger所在类的名称 有时候Logger的名称不同于类名,例如Hibernate中用org.hibernate.SQL作为所有输出DML语句的Logger的名称,便于控制。允许使用%C{数字}输出部分的名称(从右边往左边)。见实例 | %C将输出com.log4j.Log4jTest %C{1}将输出Log4jTest %C{2}将输出log4j.Log4jTest %C{3}将输出com.log4j.Log4jTest |
d | 输出日期。允许使用%d{yyyy-MM-dd HH:mm:ss}格式化日期。%d不仅支持JDKSimpleDateFormat的日期格式,还支持log4j自己的日期格式,例如ABSOLUTE,DATE,ISO8601等 | %d将输出2013-06-06 22:24:25,353 %d{yyyy-MM-dd}将输出2013-06-06 %d{ABSOLUTE}将输出22:24:25,353 %d{DATE}将输出06六月2013 22:24:25,253 |
F | 输出所在的类文件名称 | %F将输出Log4jTest.java |
l | 输出语句所在的行数,包括类名,方法名,文件名,行数等 | %l将输出com.log4j.test.Log4jTest.main(Log4jTest.java:50) |
L | 输出语句所在的行数,只输出数字 | %L将输出 50 |
m | 输出日志 | 输出日志,即log.info(“”),log.debug(“”)参数 |
M | 输出方法名 | %M将输出main |
n | 换行.Windows下输出\r\n,Linux下输出\n | 含行 |
p | 输出日志级别(prioriry) | DEBUG,INFO,ERROR,FITAL等 |
r | 输出从程序启动到输出该日志之间的时间间隔,单位毫秒 | %r将输出300 |
t | 输出当前的线程名称 | %t将输出main,Thread-0,Thread-1等 |
% | %%用来输出百分号 |
|