文章摘要: Log4j 2 是XML配置文件总结。
Configuration
- status:用于指定log4j本身的打印日志的级别
- monitorinterval:自动重载配置,检查间隔时间,单位是s,最小是5s。
- Appenders
- Console:定义输出到控制台
- File:定义输出到指定位置的文件
- RollingFile:定义操作指定大小自动删除就的创建新的
- Loggers
- Root:指定项目的根日志,若没有Logger时则默认使用该日志输出
- Logger:单独指定日志的形式,比如指定包下的class指定不同的日志级别
<?xml version="1.0" encoding="UTF-8"?>
<!-- 根节点 -->
<configuration status="error"> <!-- 设置日志级别 -->
<!-- 先定义所有的appender附加器 -->
<appenders>
<!-- 输出控制台 -->
<Console name="console" target="SYSTEM_OUT">
<!-- 控制台只输出LEVEL及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
<ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
<!-- 输出日志的格式 -->
<PatternLayout pattern="%{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/> <!-- %msg%xEx%n" -->
</Console>
<!-- 输出保存文件 -->
<!-- 文件会打印出所有信息,这个log每次运行程序都会自动清空,由append属性决定 -->
<!-- append:`false`表示消息覆盖指定的文件内容,(默认)`true`表示消息增加到指定文件中 -->
<File name="log" fileName="/home/magictable/softwareagent/agent/log/log4j2.log" append="false">
<!-- 输出日志的格式 -->
<PatternLayout pattern="%{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
</File>
<!-- 添加过滤器ThresholdFilter,可以有选择的输出某个级别以上的类别 onMatch="ACCEPT" onMismatch="DENY" 意思是匹配就接受,否则直接拒绝 -->
<File name="ERROR" fileName="/home/magictable/softwareagent/agent/log/error.log">
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="%{HH:mm:ss.SSS} %-5level %class{36} %L %M - %m%n"/>
</File>
<!-- 打印所有的信息,每次大小超过size,则日志会自动存入,按年月日建立的文件夹下面并进行压缩 -->
<RollingFile name="RollingFile" fileName="/home/magictable/softwareagent/agent/log/web.log"
filePattern="log/$${date:yyyy-MM}/web-%d{MM-dd-yyyy}-$i.log.gz">
<PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>
<SizeBasedTriggeringPolicy size="2MB"/>
</RollingFile>
</appenders>
<!-- 定义logger,只有定义了logger并引入appender,才会生效 -->
<loggers>
<root level="trace">
<appender-ref ref="Console"/>
<appender-ref ref="log"/>
<appender-ref ref="ERROR"/>
<appender-ref ref="RollingFile"/>
</root>
</loggers>
</configuration>