个人能力有限,仅供个人记录与大家思路参考,难免有错误或不当之处,如发现错误之处请指出,谢谢!
日志共有8个级别(优先级从高到低,优先级越高表示过滤的log信息越多,显示的log信息越少):
级别名称 | 含义 | 级别 |
OFF | 关闭日志输出 | 最高 |
FATAL | 输出FATAL及以上级别日志(FATAL) | |
ERROR | 输出ERROR及以上级别日志(FATAL、ERROR) | |
WARN | 输出WARN及以上级别日志(FATAL、ERROR、WARN) | |
INFO | 输出INFO及以上级别日志(FATAL、ERROR、WARN、INFO) | |
DEBUG | 输出DEBUG 以上级别日志(FATAL、ERROR、WARN、INFO、DEBUG) | |
TRACE | 输出TRACE以上级别日志(FATAL、ERROR、WARN、INFO、DEBUG、TRACE) | |
ALL | 输出所有类型日志(ALL、FATAL、ERROR、WARN、INFO、DEBUG、TRACE) | 最低 |
Log4j建议只使用四个级别,优先级从高到低分别是 ERROR、WARN、INFO、DEBUG。 日志记录器(Logger)的行为是分等级的:
日志记录器(Logger)是日志处理的核心组件。log4j具有5种正常级别(Level)。:
static Level DEBUG | 指出细粒度信息事件对调试应用程序是非常有帮助的。 |
static Level INFO | 表明 消息在粗粒度级别上突出强调应用程序的运行过程。 |
static Level WARN | WARN level表明会出现潜在错误的情形。 |
static Level ERROR | ERROR level指出虽然发生错误事件,但仍然不影响系统的继续运行。 |
static Level FATAL | FATAL level指出每个严重的错误事件将会导致应用程序的退出。 |
另外,还有两个可用的特别的日志记录级别:
static Level OFF | 最高等级,用于关闭所有日志记录。 |
static Level ALL | 最低等级,用于打开所有日志记录。 |
log配置文件主要包含三个节点:Logger、Appender、Layout。
Logger | 配置打印日志的级别,输出日志的程序范围,以及关联的Appender |
Appender | 配置日志的输出形式,输出策略等 |
Layout | 配置每条日志的内容格式 |
配置文件,示例:
#配置根节点
=INFO,Log4jConsole,Log4jFile
#log不向上层传递
=false
#设置变量,保存路径 ${}/logs
logDir=D:/tomcat/logs
#控制台输出
.Log4jConsole=.
.=INFO
.=true
.=
#输出格式
.=.
.=[%p][%d{yyyy-MM-dd HH:mm:ss,SSS}] [%c:%M:%L] %m%n
#文件输出
.Log4jFile=.
.=INFO
.=true
.=true
.=${logDir}/
.='.'yyyy-MM-dd
#输出格式
.=.
.=[%p][%d{yyyy-MM-dd HH:mm:ss,SSS}] [%c:%M:%L] %m%n
Log4j2过滤日志级别配置
一. 属性详解:onMatch和onMismatch都有三个属性值,分别为ACCEPT(接受)、DENY(拒绝)和NEUTRAL(中立)
onMatch="ACCEPT"匹配该级别及以下级别;
onMatch="DENY"不匹配该级别及以下级别;
onMatch="NEUTRAL" 该级别及以下的,由下一个filter处理,如果当前是*别,则表示匹配该级别及以下
onMismatch="ACCEPT" 匹配该级别以上级别;
onMismatch="DENY" 不匹配该级别以上的级别;
onMismatch="NEUTRAL" 该级别及以上的,由下一个filter处理,如果当前是最低级别,则不匹配该级别以上的
二. 单一应用
1. 匹配低于或等于xxx的级别
<ThresholdFilter level="xxx" onMatch="ACCEPT" onMismatch="DENY"/>
2.匹配高于xxx的级别
<ThresholdFilter level="xxx" onMatch="DENY" onMismatch="ACCEPT"/>
三. 组合应用
<ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>