首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

log4j2使用教程

Log4j2简介

log4j2是log4j 1.x 的升级版,2015年5月,Apache宣布log4j1.x 停止更新。最新版为1.2.17。

log4j2参考了logback的一些优秀的设计,并且修复了一些问题,因此带来了一些重大的提升,主要有:

1、异常处理:在logback中,Appender中的异常不会被应用感知到,但是在log4j2中,提供了一些异常处理机制。

2、性能提升:log4j2相较于log4j 1和logback都具有很明显的性能提升。

3、自动重载配置:参考了logback的设计,提供自动刷新参数配置,可以动态的修改日志的级别而不需要重启应用。

4、无垃圾机制,log4j2在大部分情况下,都可以使用其设计的一套无垃圾机制,避免频繁的日志收集导致的jvm gc。

以Java项目为例介绍log4j2配置步骤

工程结构如下

1.添加log4j2相关jar包(maven)

2.log4j2.xml配置和简单说明

filePattern="logs/$$/web-%d-%i.log.gz">

3.测试类

importorg.apache.logging.log4j.LogManager;

importorg.apache.logging.log4j.Logger;

publicclasslog4j2Test {

privatestaticLogger logger=LogManager.getLogger(LogManager.ROOT_LOGGER_NAME);

publicstaticvoidmain(String[] args) {

for(inti=0;i

//记录trace级别的信息

logger.trace("log4j2日志输出:This is trace message.");

//记录debug级别的信息

logger.debug("log4j2日志输出:This is debug message.");

//记录info级别的信息

logger.info("log4j2日志输出:This is info message.");

//记录error级别的信息

logger.error("log4j2日志输出:This is error message.");

}

}

}

控制台输出结果

日志文件输出结果

log4j2配置说明

log4j 2.x版本不再支持像1.x中的.properties后缀的文件配置方式,2.x版本常用.xml后缀的文件进行配置,除此之外还包含.json和.jsn配置文件

log4j2虽然采用xml风格进行配置,依然包含三个组件,分别是 Logger(记录器)、Appender(输出目的地)、Layout(日志布局)。

XML配置文件解析

1、根节点Configuration有两个属性:status和monitorinterval,有两个子节点:Appenders和Loggers(表明可以定义多个Appender和Logger).

status用来指定log4j本身的打印日志的级别.

monitorinterval为log4j2.x新特点自动重载配置。指定自动重新配置的监测间隔时间,单位是s,最小是5s。

2、Appenders节点,常见的有三种子节点:Console、File、RollingFile

Console节点用来定义输出到控制台的Appender.

File节点用来定义输出到指定位置的文件的Appender.

RollingFile节点用来定义超过指定大小自动删除旧的创建新的的Appender.

通过在子节点中加入进行日志布局

%d 输出日志时间其格式为 可指定格式 如 %d等

%l 输出日志事件发生位置,包括类目名、发生线程,在代码中的行数

%n 换行符

%m 输出代码指定信息,如info(“message”),输出message

%p 输出日志的优先级,即 FATAL ,ERROR 等

%r 输出从启动到显示该条日志信息所耗费的时间(毫秒数)

%t 输出产生该日志事件的线程名

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200825A03M1W00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券