log4j简单配置说明

Log4j有三个主要的组件,它们分别是:
记录器(Logger):记录器只管什么日志信息应该记录(日志记录级别),可不关心log数据存放。
存放器(Appender):log信息通过存放器输出到目的地.
布局(Layout):布局负责格式化输出的log信息。

Logger,Appender,Layout三大组件的关系是:
一个Logger可以有多个Appender(可以同时输出到多目的地),每个Appender对应一种Layout
如:
log4j.rootLogger = debug , appenderName, appenderName, …
 
 Appender:日志输出目的地
 org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

Layout:日志输出格式,Log4j提供的layout有以下几种:
 org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

开发人员可以根据需要定义多个logger,如一个包配置一个logger,则该包下的日志不再输出到rootLogger对应的appender中,而是输出自身logger对应的appender中。

打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:
%m   输出代码中指定的消息
%p   输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r   输出自应用启动到输出该log信息耗费的毫秒数
%c   输出所属的类目,通常就是所在类的全名
%t   输出产生该日志事件的线程名
%n   输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
%d   输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日  22 : 10 : 28 , 921 
%l   输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 ) 

Logger与Category的区别
Logger是新的使用名称,对应Logger类
Category是旧的使用名称,对应原来的Category类
Logger类是Category类的子类,Category是旧的用法,不再推荐使用
public class Category extends java.lang.Object implements AppenderAttachable,This class has been deprecated and replaced by the Logger subclass. It will be kept around to preserve backward compatibility until mid 2003.

additivity的作用在于 children-logger是否使用 rootLogger的配置,如果为true,则当前children-log的日志将会记录两份,一份记录到自己的appender,另一份记录到rootLogger的appender
additivity在log4j默认为true

日志的级别;
常用级别为debug,info,warn,error,fatal;

猜你喜欢

转载自huangqiqing123.iteye.com/blog/2035186