新的log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- OFF < FATAL < ERROR < WARN < INFO < DEBUG < TRACE < ALL -->
<configuration status="DEBUG">
<Properties>
<Property name="LOG_HOME">log</Property>
<Property name="LOG_NAME">app_name</Property>
</Properties>
<appenders>
<!-- 控制台 -->
<Console name="console" target="SYSTEM_OUT">
<ThresholdFilter level="info" onMatch="ACCEPT"
onMismatch="DENY" />
<PatternLayout charset="UTF-8"
pattern="%d{HH:mm:ss} %-5level [%thread][%file:%line] - %msg%n" />
</Console>
<!-- warn日志文件 -->
<RollingFile name="warnFile" fileName="${LOG_HOME}/${LOG_NAME}-WARN.log"
filePattern="${LOG_HOME}/${LOG_NAME}-WARN.%d{yyyy-MM-dd}.log"
append="true">
<Filters>
<ThresholdFilter level="error" onMatch="DENY"
onMismatch="NEUTRAL" />
<ThresholdFilter level="warn" onMatch="ACCEPT"
onMismatch="DENY" />
</Filters>
<PatternLayout charset="UTF-8"
pattern="%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread][%file:%line] - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy
modulate="true" interval="1" />
</Policies>
<DefaultRolloverStrategy max="180" />
</RollingFile>
<!-- error日志文件 -->
<RollingFile name="errorFile"
fileName="${LOG_HOME}/${LOG_NAME}-ERROR.log" filePattern="${LOG_HOME}/${LOG_NAME}-ERROR.%d{yyyy-MM-dd}.log"
append="true">
<ThresholdFilter level="error" onMatch="ACCEPT"
onMismatch="DENY" />
<PatternLayout charset="UTF-8"
pattern="%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread][%file:%line] - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy
modulate="true" interval="1" />
</Policies>
<DefaultRolloverStrategy max="180" />
</RollingFile>
<!-- info以上日志文件 -->
<RollingFile name="infoFile"
fileName="${LOG_HOME}/${LOG_NAME}-INFO+.log" filePattern="${LOG_HOME}/${LOG_NAME}-INFO+.%d{yyyy-MM-dd}.log"
append="true">
<ThresholdFilter level="info" onMatch="ACCEPT"
onMismatch="DENY" />
<PatternLayout charset="UTF-8"
pattern="%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread][%file:%line] - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy
modulate="true" interval="1" />
</Policies>
<DefaultRolloverStrategy max="180" />
</RollingFile>
<!-- debug以上日志文件 -->
<RollingFile name="debugFile"
fileName="${LOG_HOME}/${LOG_NAME}-DEBUG+.log" filePattern="${LOG_HOME}/${LOG_NAME}-DEBUG+.%d{yyyy-MM-dd}.log"
append="true">
<ThresholdFilter level="debug" onMatch="ACCEPT"
onMismatch="DENY" />
<PatternLayout charset="UTF-8"
pattern="%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread][%file:%line] - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy
modulate="true" interval="1" />
</Policies>
<DefaultRolloverStrategy max="180" />
</RollingFile>
</appenders>
<loggers>
<root level="all">
<appender-ref ref="console" />
<appender-ref ref="debugFile" />
<appender-ref ref="infoFile" />
<appender-ref ref="warnFile" />
<appender-ref ref="errorFile" />
</root>
</loggers>
</configuration>
主要是定义了4个RollingFile,使项目运行时能产生4个日志文件,分别代表“只记录warn级日志”、“只记录error级日志”、“记录info及其以上级别的日志”、“记录debug及其以上级别的日志”,既有完整日志,又有分类细化日志。
首先需要明确日志的重要级。
FATAL ERROR WARN INFO DEBUG TRACE
越左边的越重要。
不同的RollingFile显示不同级别的日志是通过ThresholdFilter标签配置的,以name为warnFile的RollingFile为例:
<ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL" />
代表比error(level)或比error更重要的日志(onMatch),在这个RollingFile中不显示(DENY);比error不重要的日志(onMismatch),在这个RollingFile中是否显示交给其他ThresholdFilter标签来决定(NEUTRAL)。
<ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY" />
代表比warn(level)或比warn更重要的日志(onMatch),在这个RollingFile中显示(ACCEPT);比warn不重要的日志(onMismatch),在这个RollingFile中不显示(DENY)。
结合两个ThresholdFilter,最终的结果是只显示warn级的日志。(Deolin开发时一般用不到FATAL和TRACE)
需要感谢两篇博客:
https://www.cnblogs.com/hafiz/p/6170702.html
http://bglmmz.iteye.com/blog/2154490
新的log4j2.xml的更多相关文章
- 聊一聊log4j2配置文件log4j2.xml
一.背景 最近由于项目的需要,我们把log4j 1.x的版本全部迁移成log4j 2.x 的版本,那随之而来的slf4j整合log4j的配置(使用Slf4j集成Log4j2构建项目日志系统的完美解决方 ...
- log4j2.xml实用例子
一个多月前,我写了篇关于log4j.xml配置的文章,点击此处查看:http://www.cnblogs.com/guogangj/p/3931397.html 最近,我把自己的log4j升级到2.0 ...
- log4j2.xml配置及例子
1.使用log4j2需要下载包,如下: 2.配置文件可以有三种格式(文件名必须规范,否则系统无法找到配置文件): classpath下名为 log4j-test.json 或者log4j-test.j ...
- log4j2的配置文件log4j2.xml笔记
一.背景 最近由于项目的需要,我们把log4j 1.x的版本全部迁移成log4j 2.x 的版本,那随之而来的slf4j整合log4j的配置(使用Slf4j集成Log4j2构建项目日志系统的完美解决方 ...
- log4j2配置文件log4j2.xml
原地址:https://www.cnblogs.com/hafiz/p/6170702.html 1.关于配置文件的名称以及在项目中的存放位置 log4j 2.x版本不再支持像1.x中的.proper ...
- log4j2配置文件log4j2.xml详解(转载)
此博文转载自阿豪聊干货:https://www.cnblogs.com/hafiz/p/6170702.html 一.背景 最近由于项目的需要,我们把log4j 1.x的版本全部迁移成log4j 2. ...
- log4j2配置文件log4j2.xml详解
配置全解 1.缺省默认配置文件 <?xml version="1.0" encoding="UTF-8"?> <Configuration s ...
- SpringBoot—整合log4j2入门和log4j2.xml配置详解
关注微信公众号:CodingTechWork,一起学习进步. 引言 对于一个线上程序或者服务而言,重要的是要有日志输出,这样才能方便运维.而日志的输出需要有一定的规划,如日志命名.日志大小,日志分 ...
- log4j之log4j2.xml使用
依赖jar包 log4j-api-2.6.2.jar log4j-core-2.6.2.jar log4j-slf4j-impl-2.6.2.jar slf4j-api-1.7.12.jar 在res ...
随机推荐
- 你听过稀疏数组(sparseArray)吗?
稀疏数组(sparseArray) 基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组. 稀疏数组的处理方法是: 1.记录数组一共有几行几列,有多少个不同的值 ...
- vue实现一个评论列表
<!DOCTYPE html> <html> <head> <title>简易评论列表</title> <meta charset=& ...
- 文件锁 flock/fcntl
多个进程同时操作一个文件 1. flock int flock(int fd, int operation); LOCK_SH 建立共享锁定.多个进程可同时对同一个文件作共享锁定(读锁定) LOCK_ ...
- sql server split切割字符串
create FUNCTION [dbo].[dnt_split] ( @splitstring varchar(max), @separator CHAR() = ',' ) RETURNS @sp ...
- OpenStack kilo版(8) 部署cinder
直接将cinder服务和块设备都部署在controller节点上 在controller节点添加一块100G的块设备/dev/sdb 配置数据库 (root@localhost) [(none)]&g ...
- javascript 箭头函数的使用 初学者必看
为了保证可读性,本文采用意译而非直译.另外,本文版权归原作者所有,翻译仅用于学习. 本文我们介绍箭头(arrow)函数的优点. 更简洁的语法我们先来按常规语法定义函数: 1 2 3 4 5 funct ...
- 【SpringMVC】RESTful支持
一.概述 1.1 什么是RESTful 1.2 URL的RESTful实现 二.演示 2.1 需求 2.2 第一步更改DispatcherServlet配置 2.3 第二步参数通过url传递 2.4 ...
- Linux下安装php 扩展fileinfo
在项目初始部署环境的时候,可能考虑的并不全面,就会少装一些扩展,这里讲解如何添加fileinfo扩展 1.找到php安装的压缩包 2.将压缩包cp到 /data目录下,并解压 cp php-7.0.3 ...
- 用python代码编写象棋界面,棋盘覆盖问题
编写象棋界面 import turtle t=turtle.Pen() t.speed(100) def angle(x,y): t.penup() t.goto(x+3,y+3) t.pendown ...
- P2746 P2812 [USACO5.3]校园网Network of Schools[SCC缩点]
题目描述 一些学校连入一个电脑网络.那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作"接受学校").注意即使 B 在 A 学校的分发列表中, A 也不一定在 B 学 ...