新的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><TimeBasedTriggeringPolicymodulate="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><TimeBasedTriggeringPolicymodulate="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><TimeBasedTriggeringPolicymodulate="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><TimeBasedTriggeringPolicymodulate="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
转载于:https://www.cnblogs.com/deolin/p/7877483.html
新的log4j2.xml相关推荐
- log4j2的配置文件log4j2.xml笔记
一.背景 最近由于项目的需要,我们把log4j 1.x的版本全部迁移成log4j 2.x 的版本,那随之而来的slf4j整合log4j的配置(使用Slf4j集成Log4j2构建项目日志系统的完美解决方 ...
- log4j2入门(四) log4j2.xml配置文件详细实例
log4j2相对于log4j 1.x有了脱胎换骨的变化,其官网宣称的优势有多线程下10几倍于log4j 1.x和logback的高吞吐量.可配置的审计型日志.基于插件架构的各种灵活配置等.如果已经掌握 ...
- 聊一聊log4j2配置文件log4j2.xml
一.背景 最近由于项目的需要,我们把log4j 1.x的版本全部迁移成log4j 2.x 的版本,那随之而来的slf4j整合log4j的配置(使用Slf4j集成Log4j2构建项目日志系统的完美解决方 ...
- log4j2配置文件log4j2.xml详解
一.配置全解 1.关于配置文件的名称以及在项目中的存放位置 log4j 2.x版本不再支持像1.x中的.properties后缀的文件配置方式,2.x版本配置文件后缀名只能为".xml&qu ...
- SpringBoot—整合log4j2入门和log4j2.xml配置详解
关注微信公众号:CodingTechWork,一起学习进步. 引言 对于一个线上程序或者服务而言,重要的是要有日志输出,这样才能方便运维.而日志的输出需要有一定的规划,如日志命名.日志大小,日志分 ...
- log4j2配置文件log4j2.xml
原地址:https://www.cnblogs.com/hafiz/p/6170702.html 1.关于配置文件的名称以及在项目中的存放位置 log4j 2.x版本不再支持像1.x中的.proper ...
- SSM中log4j2.xml配置文件的各项标签
一.背景 本文就专门来讲解下log4j2.xml配置文件的各项标签的意义. 二.配置全解 1.关于配置文件的名称以及在项目中的存放位置 log4j 2.x版本不再支持像1.x中的.properties ...
- log4j2.xml参数详解
log4j2.0以后我们通常在log4j2.xml中配置相关参数,在配置的时候我们需要理解这些参数的具体含义,下面列出了这些参数的解释. 1.Logger 完成日志信息的处理 <logger n ...
- log4j2.xml 的标签 loggers 中 root 的属性 level 指的是什么
log4j2.xml 的标签 loggers 中 root 的属性 level 指的是什么 log4j2.xml 是 log4j2 中的其中一种配置文件.log4j2.xml 中往往有如下配置: ...
最新文章
- 黄聪:说说JSON和JSONP,也许你会豁然开朗(转)
- 电费竟然占了数据中心运维总成本的7成?
- java 内存排序_详细解析Java内存,处理器重排序,编译器重排序以及它对线程的影响...
- springcloud 返回json
- C++对于程序调试很有用的系统自带的名字
- java 内存情况_java查看jvm内存使用情况
- 工程安全cso千人千面计算机,千人一面变为千人千面 自适应教育助力因材施教...
- linux中head下的所有参数,Linux 命令之head 命令使用
- 安卓逆向系列教程 4.5 糖果星星达人
- 网络中的哪些事儿(三)之我眼中的三层交换机
- call mysql_connect_Call to undefined function mysql_connect()
- 为什么是GCN(转)
- C++学习之 delete 构造器
- 认知空间是什么意思_什么是认知?
- 转:sklearn 用户手册之1.12. 多类别与多标签算法
- 04 Python | 写入古诗并复制到新文档
- VB.Net - 程序结构
- password_hash/password_verify/(JAVA)
- 单位弹性需求曲线形状_需求曲线为直线时,在单位弹性点上总收益为最大。 - 问答库...
- 内容算法:新闻“标题党”检测方法综述
热门文章
- Const 深度解析
- OpenCV3学习(6.2)——霍夫(Hough)变换:霍夫线变换HoughLine,霍夫圆变换HoughCircles
- R7-11 h0096. 单词合并 (10 分)
- 7-5 图形继承与多态 (50 分)
- 怎样安装android系统版本,Android 12公测版Beta 1现已推出,教你如何安装
- 计算机绘图的展望,计算机绘图技的术发展与展望.doc
- signature=fa342ee2b7c3e3e9cba3f194df2d59ca,Date of Signature
- MTK(android init.rc) 写一个开机启动的服务
- 802.1X和NAP整合实验手册
- Linux 链接详解----静态链接实例分析