https://baike.baidu.com/item/log4j/480673?fr=aladdin 百度解释的不错
http://blog.csdn.net/evankaka/article/details/45815047
目的地appender:用来表示打印的地方,如:控制台,文件等
布局layout:打印的格式
控制单元:控制着日志以什么样式格式输出到哪里
级别:四种基本级别
一.日志级别和获取
Log4j有如下级别
1 OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL。
Log4j建议只用四个级别分别是ERROR、WARN、INFO、DEBUG。
2 他们四个的级别:debug<info<warn<error,假如你选择的级别是info,那就是往后靠,打印出大于等于info级别的全部标注日志
public class TestXXX
{
private static final Logger logger = Logger.getLogger(TestXXX.class);
}
二.输出源
常见Appender,前3个常用
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
org.apache.log4j.jdbc.JDBCAppender(把日志用JDBC记录到数据库中)
三.布局
1 布局就是指输出信息的格式。在Log4j中称作Layout
2 常见Layout
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
常见PatternLayout介绍:
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,
比如:%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2015-12-20 18:35:51,768
例子:
log4j.xml格式
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<param name="Encoding" value="UTF-8" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L) \n" />
</layout>
</appender>
<logger name="java.sql">
<level value="debug" />
</logger>
<logger name="org.apache.ibatis">
<level value="info" />
</logger>
<root>
<level value="debug" />
<appender-ref ref="STDOUT" />
</root>
</log4j:configuration>
log4j.properties格式
log4j.rootLogger=DEBUG, b
log4j.appender.b=org.apache.log4j.ConsoleAppender
log4j.appender.b.layout=org.apache.log4j.PatternLayout
log4j.appender.b.layout.ConversionPattern=%5p %m%n
#
log4j.logger.org.mybatis=DEBUG
#log4j.logger.org.apache.struts2=on
#log4j.logger.com.opensymphony.xwork2=off
log4j.logger.com.ibatis=on
log4j.logger.org.apache.cxf=off
#log4j.logger.org.hibernate=OFF
log4j.logger.org.springframework=off
#log4j.logger.com.opensymphony.xwork2=ERROR