log4j2
apache官方已经声明log4j1.x不再更新,建议开发者使用log4j2,它相比1.x在使用上发生了较大的变化。 使用log4j2记录日志的步骤 1.下载jar包 log4j2官网下载:http://logging.apache.org/log4j/2.x/ 百度网盘下载:http://pan.baidu.com/s/1minAspq 下载后需要将下面两个jar包导入到项目中
- log4j-api-2.9.1.jar
- log4j-core-2.9.1.jar
2.添加日志输出控制文件 在log4j2中的配置文件是 XML 格式的文件,不再支持properties 文件。在src目录下创建log4j2.xml文件,里面写上下面内容。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="OFF">
<Appenders>
<!-- console -->
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<!-- file -->
<File name="file" fileName="log/output.log" append="true">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</File>
<!-- rollingFile -->
<RollingFile name="rollingFile" fileName="logs/app.log"
filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
<SizeBasedTriggeringPolicy size="1kb" />
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console" />
</Root>
</Loggers>
</Configuration>
3.编写日志记录代码
导包的时候注意Logger 与 LogManager 都是 org.apache.logging.log4j 包中的类,而不是org.apache.log4j包中的。另外在创建记录日志对象时,使用的是LogManager类
package com.monkey1024.test;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
/**
* log4j2
*
*/
public class Log4j2Test01 {
public static void main(String[] args) {
//创建记录日志的对象
Logger log = LogManager.getLogger(Log4j2Test01.class);
//下面语句会根据log4j2.xml中的日志级别输出
log.debug("debug信息");
log.info("info信息");
log.warn("warn信息");
log.error("error信息");
}
}
上面代码会将info以上级别的日志信息输出到控制台中。
日志输出控制文件分析
若开发者没有设置 log4j2.xml,则系统会使用默认的日志配置:只会输出到控制台 error 级别的信息。
configuration标签
configuration标签的 status 属性用于设置 Log4j2 自身运行的日志显示级别,一般为OFF,不显示,也可以设置为 ERROR、DEBUG 等其它级别。
Console标签 Console标签的 target 属性用于设置输出的目标形式,其值一般为:SYSTEM_OUT 或 SYSTEM_ERR
File标签 File标签的 fileName 属性用于设置文件的文件保存路径及文件名。如本例的意思是,日志文件名为 output.log,将其存放在当前项目的根目录下的 log 子目录中,如果log目录不存在会自动创建。
append 属性用于设置是否以追加方式将日志写入文件中。
RollingFile标签 fileName 指定存放目录及第一个日志文件名。filePattern 指定新创建的日志文件的文件名。本例还会对文件进行压缩。
SizeBasedTriggeringPolicy子标签用于指定每一个日志文件最大文件大小。当达到这个指定值后,会自动再新建一个日志文件。
loggers标签 用于配置根Logger 对象,用来指定所使用的日志记录器,及显示的级别。 其子标签root用于指定所使用的日志记录器。该子标签的属性 level 用于指定显示级别,主要是通过root的子标签appender-ref来引用appenders中定义好的记录器。 需要注意的是,只要在appenders中定义了File、 RollingFile等,且在其中指定了日志存放的目录,无论是否在appender-ref中引用,这些目录都会自动创建。
相关文章
本站已关闭游客评论,请登录或者注册后再评论吧~