Log4J使用不完全指南
准备
登录apache.org,下载log4j最新jar文件。将jar文件导入到项目中.
快速应用
1.Log4J应用Demo
package com.log4j.test; import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class StartUp { public static Logger logger; public static void main(String[] args) { StartUp s = new StartUp(); s.configLog4J(); s.go(); } private void configLog4J() { // 1.获取日志记录器,Name一般取本类的名字 logger = Logger.getLogger(getClass().getName()); // 2.配置Log4j环境 // BasicConfigurator.configure();自动快速地使用缺省Log4j环境。 // PropertyConfigurator.configure ( String configFilename); // 读取使用Java的特性文件编写的配置文件。 // DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。 PropertyConfigurator.configure("Log4j.properties"); } private void go() { for (int i=0;i<100;i++) { logger.debug("test debug"); logger.log(Level.INFO, "test info"); } } }
2.新建配置文件 Log4j.properties
log4j.rootLogger=INFO, A1 ,A2 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=[%-5p] [%t] %c - %m%n log4j.appender.A2=org.apache.log4j.FileAppender log4j.appender.A2.File=A2.log log4j.appender.A2.Append=true log4j.appender.A2.layout=org.apache.log4j.PatternLayout log4j.appender.A2.layout.ConversionPattern=[%-5p] [%t] %c - %m%n
3.运行Demo即可看到效果
Log4J详细配置
log4j.rootLogger=INFO, A1 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%-4r [%-5p] [%t] %l - %m%n
1.配置根Logger,其语法为:
log4j.rootLogger = [ level ] , appenderName, appenderName, …
其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。
Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。
比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。
2.配置日志信息输出目的地Appender,其语法为
log4j.appender.appenderName = fully.qualified.name.of.appender.class log4j.appender.appenderName.option1 = value1 … log4j.appender.appenderName.option = valueN 其中,Log4j提供的appender有以下几种: org.apache.log4j.ConsoleAppender(控制台), org.apache.log4j.FileAppender(文件), org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件), org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
其中,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局), org.apache.log4j.PatternLayout(可以灵活地指定布局模式), org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串), org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
3.pattern
%c 输出类的名字,默认是输出全名,可以指定输出多少层次,比如 %c{2}这样配置的话 "a.b.c" 是全类名,会输出"b.c". %d 用来输出log事件发生的时间。 可以指定格式,比如:%d{yyyy-MM-dd HH:mm:ss}会输出 2007-04-26 20:12:03 %F 输出log事件发生的文件。 %l 输出log事件发生的位置,会输出全类名和在源码的哪一行。 %L 输出log事件发生在源码的第几行。 %m 输出message的内容,就是logger.info(message)的内容。 %M 输出log事件发生的方法名。 %n 输出一个换行符。不用担心系统的问题。 %p 输出log事件的级别,即info,debug,warn等。 %r 输出log事件所用的时间。 %t 输出log事件所在的线程。 %x 输出NDC(不明白什么意思,没试验出来) %X 输出MDC %% 输出%