log4j2学习笔记

本文介绍了Log4j2的配置位置,包括配置文件的命名和查找方式,如在classpath中查找或通过web.xml配置。此外,讨论了如何动态变更配置文件位置以及使用System.setProperty来指定配置文件。在配置文件解析部分,提到了异步写入模式的设置。最后,文章还提及了Log4j2自定义过滤器的实现,以LoggerMatchFilter为例。
摘要由CSDN通过智能技术生成

一.配置位置

1.log4j2配置格式上与log4j已经不同了,log4j2不再支.properties格式,只能是.xml,.json或.jsn

2.log4j2的配置文件需命名为log4j2

3.默认会在classpath里寻找log4j2的配置文件,可在web.xml里按如下配置

<context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>classpath:log4j.properties</param-value>
</context-param>

或者

<context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>file:/opt/config/open_portal/openapi/appconfig/log4j2.xml</param-value>
</context-param>

4.可以使用System.setProperty("log4j.configurationFile", path)来配置文件的位置,如果使用了这种方式,需与log4j2.configurationFactory配合使用

5.动态变更配置文件位置

File configDirFile = getConfigDir();
LoggerContext logContext = (LoggerContext) LogManager.getContext(false);
File conFile = new File(loggingFile.getAbsolutePath());
logContext.setConfigLocation(conFile.toURI());
logContext.reconfigure();

二.配置文件解析

<?xml version="1.0" encoding="UTF-8"?>

<!--status用来指定log4j本身内部的信息输出的日志的级别-->
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--packages属性设置为自定义过滤器LoggerMatchFilter的包名,表示log4j2会去这个包下查找扩展类 -->
<!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->
<Configuration status="trace" packages="com.common.log" monitorInterval="30" version="20">
    <!--变量属性定义 后面可以这样使用${filename}-->
    <Properties>
        <Property name="filename">rollingtest.log</Property>
    </Properties>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值