<?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相关推荐

  1. log4j2的配置文件log4j2.xml笔记

    一.背景 最近由于项目的需要,我们把log4j 1.x的版本全部迁移成log4j 2.x 的版本,那随之而来的slf4j整合log4j的配置(使用Slf4j集成Log4j2构建项目日志系统的完美解决方 ...

  2. log4j2入门(四) log4j2.xml配置文件详细实例

    log4j2相对于log4j 1.x有了脱胎换骨的变化,其官网宣称的优势有多线程下10几倍于log4j 1.x和logback的高吞吐量.可配置的审计型日志.基于插件架构的各种灵活配置等.如果已经掌握 ...

  3. 聊一聊log4j2配置文件log4j2.xml

    一.背景 最近由于项目的需要,我们把log4j 1.x的版本全部迁移成log4j 2.x 的版本,那随之而来的slf4j整合log4j的配置(使用Slf4j集成Log4j2构建项目日志系统的完美解决方 ...

  4. log4j2配置文件log4j2.xml详解

    一.配置全解 1.关于配置文件的名称以及在项目中的存放位置 log4j 2.x版本不再支持像1.x中的.properties后缀的文件配置方式,2.x版本配置文件后缀名只能为".xml&qu ...

  5. SpringBoot—整合log4j2入门和log4j2.xml配置详解

    关注微信公众号:CodingTechWork,一起学习进步. 引言   对于一个线上程序或者服务而言,重要的是要有日志输出,这样才能方便运维.而日志的输出需要有一定的规划,如日志命名.日志大小,日志分 ...

  6. log4j2配置文件log4j2.xml

    原地址:https://www.cnblogs.com/hafiz/p/6170702.html 1.关于配置文件的名称以及在项目中的存放位置 log4j 2.x版本不再支持像1.x中的.proper ...

  7. SSM中log4j2.xml配置文件的各项标签

    一.背景 本文就专门来讲解下log4j2.xml配置文件的各项标签的意义. 二.配置全解 1.关于配置文件的名称以及在项目中的存放位置 log4j 2.x版本不再支持像1.x中的.properties ...

  8. log4j2.xml参数详解

    log4j2.0以后我们通常在log4j2.xml中配置相关参数,在配置的时候我们需要理解这些参数的具体含义,下面列出了这些参数的解释. 1.Logger 完成日志信息的处理 <logger n ...

  9. log4j2.xml 的标签 loggers 中 root 的属性 level 指的是什么

    log4j2.xml 的标签 loggers 中 root 的属性 level 指的是什么   log4j2.xml 是 log4j2 中的其中一种配置文件.log4j2.xml 中往往有如下配置: ...

最新文章

  1. 黄聪:说说JSON和JSONP,也许你会豁然开朗(转)
  2. 电费竟然占了数据中心运维总成本的7成?
  3. java 内存排序_详细解析Java内存,处理器重排序,编译器重排序以及它对线程的影响...
  4. springcloud 返回json
  5. C++对于程序调试很有用的系统自带的名字
  6. java 内存情况_java查看jvm内存使用情况
  7. 工程安全cso千人千面计算机,千人一面变为千人千面 自适应教育助力因材施教...
  8. linux中head下的所有参数,Linux 命令之head 命令使用
  9. 安卓逆向系列教程 4.5 糖果星星达人
  10. 网络中的哪些事儿(三)之我眼中的三层交换机
  11. call mysql_connect_Call to undefined function mysql_connect()
  12. 为什么是GCN(转)
  13. C++学习之 delete 构造器
  14. 认知空间是什么意思_什么是认知?
  15. 转:sklearn 用户手册之1.12. 多类别与多标签算法
  16. 04 Python | 写入古诗并复制到新文档
  17. VB.Net - 程序结构
  18. password_hash/password_verify/(JAVA)
  19. 单位弹性需求曲线形状_需求曲线为直线时,在单位弹性点上总收益为最大。 - 问答库...
  20. 内容算法:新闻“标题党”检测方法综述

热门文章

  1. Const 深度解析
  2. OpenCV3学习(6.2)——霍夫(Hough)变换:霍夫线变换HoughLine,霍夫圆变换HoughCircles
  3. R7-11 h0096. 单词合并 (10 分)
  4. 7-5 图形继承与多态 (50 分)
  5. 怎样安装android系统版本,Android 12公测版Beta 1现已推出,教你如何安装
  6. 计算机绘图的展望,计算机绘图技的术发展与展望.doc
  7. signature=fa342ee2b7c3e3e9cba3f194df2d59ca,Date of Signature
  8. MTK(android init.rc) 写一个开机启动的服务
  9. 802.1X和NAP整合实验手册
  10. Linux 链接详解----静态链接实例分析