log4j2 配置
1、配置文件的名称及在项目中的存放位置
log4j 2.x版本不再支持像1.x中的.properties后缀的文件配置方式,2.x版本配置文件后缀名只能为".xml",".json"或者".jsn"。
系统选择配置文件的优先级(从先到后)如下:
- (1)classpath下的名为log4j2-test.json 或者log4j2-test.jsn的文件.
- (2)classpath下的名为log4j2-test.xml的文件.
- (3)classpath下名为log4j2.json 或者log4j2.jsn的文件.
- (4)classpath下名为log4j2.xml的文件.
我们一般默认使用log4j2.xml进行命名。如果本地要测试,可以把log4j2-test.xml放到classpath,而正式环境使用log4j2.xml,则在打包部署的时候不要打包log4j2-test.xml即可。
2、缺省的默认配置
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
3、配置文件节点解析
(1)根节点 Configuration
-
属性:
- status:用于指定 log4j 本身的打印日志的级别
- monitorinterval:用于指定 log4j 自动重新配置的检测时间间隔,单位是 s,最小值为 5s
-
节点:
- Appenders节点,常见的子节点有 Console、RollingFile、File
- Console:用来定义输出到控制台的 Appender。
- name:指定 Appender 的名字
- target:SYSTEM_OUT 或 SYSTEM_ERR,一般只设置默认:SYSTEM_OUT
- PatternLayout:输出格式,不设置默认为:%m%n.
- File:用来定义输出到指定位置的文件的 Appender
- name:指定 Appender 的名字
- fileName:指定输出日志的目的文件,带全路径的文件名
- PatternLayout:输出格式,不设置默认为:%m%n.
- RollingFile:用来定义超过指定大小自动删除旧的创建新的 Appender
- name:指定 Appender 的名字
- fileName:指定输出日志的目的文件,带全路径的文件名
- PatternLayout:输出格式,不设置默认为:%m%n.
- filePattern:指定新建日志文件的名称格式
- Policies:指定滚动日
- Console:用来定义输出到控制台的 Appender。
- Appenders节点,常见的子节点有 Console、RollingFile、File