一.配置位置
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>