log4j的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。
创建Log4j的步骤:
-
在项目中lib目录下引入相关的jar包(log4j-1.2.8.jar)。
- 在src目录下创建Log4j.properties配置文件。
<span style="font-size:18px;">log4j.rootLogger=debug, stdout, D
### 输出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern= %d{ABSOLUTE} %5p %c{1}:%L - %m%n
### 输出到日志文件 ###
log4j.appender.D=org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File=logs/log.log
log4j.appender.D.Append=true ##默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
log4j.appender.D.Threshold=DEBUG ## 输出DEBUG级别以上的日志
log4j.appender.D.layout=org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%t:%r]-[%p] %m%n</span>
3. 根据项目需求修改其中的属性。
4. 在要输出日志的类中加入相关语句。
定义属性 static
Logger logger=Logger.getLogger(Test.
class
);
//Test为输出日志的类
在相关方法中调用 logger.debug(
"debug"
);
说明:
log4j.rootLogger=debug, stdout, D // 此句是将等级为debug的日志信息输出到stdout, D两个目的地,stdout, D可以任意取名。
1、日志的输出的级别有:DEBUG(7)、INFO(6)、 WARN(4)、 ERROR(3)、 FATAL(0)。
2、日志输出的目的地(appender)有:
-
<span style="font-size:18px;">org.apache.log4j.ConsoleAppender(控制台), org.apache.log4j.FileAppender(文件), org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件), org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)。</span>
3、layout:日志输出格式,Log4j提供的layout有以下几种:
<span style="font-size:18px;">org.apache.log4j.HTMLLayout(以HTML表格形式布局), org.apache.log4j.PatternLayout(可以灵活地指定布局模式), org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串), org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)。</span>
4、打印参数: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},输出类似:2016年7月25日 13:10:28,921 %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。