一.log4j有什么作用?
总的来说 能够让你迅速找到出现问题得地方,节省时间;
2.1 Logger--日志记录器
Log4j允许开发人员定义多个Logger,每个Logger拥有自己的名字,Logger之间通过名字来表明隶属关系;
有个Logger称为Root永远存在且不能通过名字检索或引用,但可以通过Logger.getRootLogger()方法获得;
其他Logger通过 Logger.getLogger(String name)方法获取;
2.2 Appender--输出源
用来指明将所有的log信息存放到什么地方;
种类:(被定义于org.apache.log4j.Level):
console:控制台;
files:文件;
GUI:图像界面;
components,NT Event Loggers等。
一个Logger可以拥有多个Appender,也就是可以将Log信息输出到多个地方;
2.3 Layout
作用:用来控制Log信息的输出方式,也就是格式化被输出的信息;
2.4 日志级别
Log4j中将输出的Log信息定义了5种级别,依次为Debug,Info,Warn,Error和Fatal;
2.5 三者关系:
logger-----进行记录的主要类
appender---记录的方式yalout---记录的格式
三. Log4j的配置文件
3.1 Log4j支持两种格式的配置文件 :XML格式和Java的property格式
3.2 Log4j提供的appender配置(分类) :
org.apache.log4j.ConsoleAppender(控制台)---------------------------终端输出
org.apeche.log4j.FileAppender(文件) 文
org.apeche.log4j.DailyRollingFileAppender(每天产生一个日志文件); 件
org.apeche.log4j.RollingFileAppender(文件大小达到指定尺寸的时候产生新文件); 输出
org.apeche.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方);------------------流输出
3.3 Log4j的布局(layout)的配置(分类) :
org.apeche.log4j.HTMLLayout(以HTML格式布局);
org.apeche.log4j.PatternLayout(可以灵活的指定布局模式)
org.apeche.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apeche.log4j.TTCCLayout(包含日志产生的时间,线程,类别等信息)
注:在layout配置为PatternLayout时 要指定输出格式 即设置ConversionPattern
四.Log4j使用步骤 :
4.1 导包: 首先将logging-log4j-xxxxx.jar包导入;
4.2 写配置文件: 将编写的log4j的配置文件放到src的根目录下;
4.3 在类中使用log4j:
在要输出日志的类中加入相关语句;
例如:private static Logger log = Logger.getLogger(SystemServlet.class);
#等级为warn 信息输出到stdout,error这两个目的地
log4j.rootLogger=WARN, stdout, error
#定义stdout的输出端是哪种类型(共5种) 控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#定义stdout的输出端的layout是哪种类型(共4种) 可以灵活地指定布局模式
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#上面的layout使用了Pattern布局, 此处就要指定打印信息的具体格式Conversionpattern
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
#指定error的输出端类型 每天产生一个日志文件
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
#指定error的输出端的layout类型 可以灵活地指定布局模式
log4j.appender.error.layout=org.apache.log4j.PatternLayout
#指定文件名以及文件路径
log4j.appender.error.File=${webapp.YCTradeUnion.root}/WEB-INF/logs/log4j
log4j.appender.error.DatePattern='-'yyyy-MM-dd'.log'
log4j.appender.error.MaxFileSize=512KB
# Keep one backup file
log4j.appender.error.MaxBackupIndex=7
#指定日志文件内容的打印格式 优先级+产生该日志事件的线程名+日志时间点的日期或时间+日志信息所属的类目,通常就是所在类的全名 +代码中指定的具体日志信息+输出一个回车换行符
log4j.appender.error.layout.ConversionPattern=%p %t %d %c - %m%n
# Print only messages of level WARN or above in the package com.foo.
#log4j.logger.com.foo=WARN