定义日志测试类:

import org.apache.logging.log4j.LogManager;

import org.apache.logging.log4j.Logger;

logger.trace("我是trace信息");

logger.debug("我是debug信息");

logger.info("我是info信息");
logger.warn("我是warn信息");
logger.error("我是error信息");

logger.fatal("我是fatal信息");

1、log4j规定了默认的几个级别:trace<debug<info<warn<error<fatal。级别之间是包含的关系,如果设置的是trace,则大于等于这个级别的日志都会输出。

2、Log4j有一个默认的配置,它的日志级别是ERROR,只输出到控制台。

3、root没有name属性,root相当于根节点,所有的logger都继承了root的log配置,如果没有指定logger的级别,只能打印root级别以上的日志。

即使你在很多类里面通过类名.class.getName() 得到很多的logger,而且没有在配置文件的loggers下面做配置,他们也都能够输出,因为他们都继承了root的log配置。

如下设置,root的级别为error,

<root level="error" includeLocation="true">

<appender-ref ref="Console"/>

</root>

<!-- 定义控制台输出 -->  Console这些节点不能随便命名的。

<Console name="Console" target="SYSTEM_OUT" follow="true">

<PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />

</Console>

输出结果:

2016-12-22 15:17:28.978 ERROR [main][Log4j2Test.java:15] - 我是error信息

2016-12-22 15:17:28.979 FATAL [main][Log4j2Test.java:16] - 我是fatal信息

如果修改控制台输出,加入如下:

<!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->

<ThresholdFilter level="fatal" onMatch="ACCEPT" onMismatch="DENY"/>

则Console只输出fatal级别以上的日志:

2016-12-22 15:19:05.945 FATAL [main][Log4j2Test.java:16] - 我是fatal信息

设置指定类的日志输出,如果设置级别为info,即使root的级别为error,指定类的info级别以上的扔能输出,相当于重写了root。

<!--additivity开启的话,如果这个logger也是满足root的,所以会被打印两遍。-->

<logger name="test.Log4j2Test" level="info" additivity="false">

<appender-ref ref="ERROR-APPENDER"/>

</logger>

则test.Log4j2Test的所有info级别以上的日志会输出到ERROR-APPENDER文件里,如果ERROR-APPENDER有设置:

<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>

则test.Log4j2Test只有满足error以上级别的才会输出到文件,要大于logger本身定义的info级别。

最终输出root->logger->appender的级别限制。

如果test.Log4j2Test配置两个AppenderReF,那么两个都会记录满足level="debug"级别的日志,这样会造成多处记录日志,应该开启匹配过滤。

<logger name="test.Log4j2Test" level="debug" additivity="false">

<AppenderReF ref="DEBUG-APPENDER"/>

<AppenderReF ref="ERROR-APPENDER"/>

</logger>

发邮件功能,只有error级别以上的才能发邮件,需要引入mail的jar包。

<SMTP name="Mail" subject="Error Log" to="to@qq.com" from="from@sina.cn" replyTo="from@sina.cn"

smtpProtocol="smtp" smtpHost="smtp.sina.cn" smtpPort="25" bufferSize="50" smtpDebug="false"

smtpPassword="***" smtpUsername="from@sina.cn">

</SMTP>

转载于:https://blog.51cto.com/netpeak/1897216

Log4j2的常用配置相关推荐

  1. Spring Boot + Log4j2 日志框架配置 (Maven)

    参考Spring Boot官方文档 日志部分 Spring Boot默认情况下,当使用"Starters" 使用Logback输出日志 , 还包括适当的Logback路由, 确保其 ...

  2. Spring Boot 实践折腾记(四):配置即使用,常用配置

    生活不可能像你想象的那么好,但也不会像你想象的那么糟.我觉得人的脆弱和坚强都超乎自己的想象.有时,可能脆弱得一句话就泪流满面:有时,也发现自己咬着牙走了很长的路.--源自 莫泊桑 开始前- 本章内容主 ...

  3. IntelliJ IDEA 最常用配置,应用、永久激活

    包含 1.最常用配置 2.应用 3.永久激活 刚刚使用IntelliJ IDEA 编辑器的时候,会有很多设置,会方便以后的开发,磨刀不误砍柴工. 比如:设置文件字体大小,代码自动完成提示,版本管理,本 ...

  4. VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装

    VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装 在阿里云开源镜像地址下载镜像 Index of /centos/7.2.1511/isos/x86_64/ http://mi ...

  5. ctrl+shift+l指定选择 vscode_6.PYTHON开发利器之VS Code常用配置介绍

    0.前言 在上一节中详细介绍了如何使用vscode+GitHub进行代码托管和向开源项目贡献自己的代码,详见5.2.PYTHON开发利器之使用VS Code+GitHub进行python开源项目开发. ...

  6. Maven pom.xml 全配置(二)不常用配置

    Maven pom.xml 全配置(二)不常用配置 这里贴出Maven pom.xml文件中使用率较少的配置参数,如果此篇文档中没有找到你想要的参数,移步Maven pom.xml 全配置(一)常用配 ...

  7. Maven pom.xml 全配置(一)常用配置

    Maven pom.xml 全配置(一)常用配置 这里贴出一个Maven中出现频率较高的配置参数注释,方便理解项目中Maven的配置具体的作用.如果在此博文中没有找到你想看到的参数,可以移步Maven ...

  8. vim的常用配置及使用方法

    点击打开链接 vim是vi发展出来的一个编辑器,ubuntu为了减小安装文件的尺寸,默认安装了vi的原始版本,我们需要下载安装它的升级版本:vim. vim的功能丰富,而且可以根据自己的需要对其进行配 ...

  9. SpringBoot阿里巴巴Fastjson的一些常用配置

    SpringBoot阿里巴巴Fastjson的一些常用配置 @Beanpublic HttpMessageConverters fastJsonHttpMessageConverters() {Fas ...

  10. SpringBoot常用配置简介

    SpringBoot常用配置简介 1. SpringBoot中几个常用的配置的简单介绍 一个简单的Spring.factories # Bootstrap components org.springf ...

最新文章

  1. 应用构建工具包 Ecere SDK
  2. Sealed,new,virtual,abstract与override的区别
  3. ZeroMQ接口函数之 :zmq_pgm – ØMQ 使用PGM 进行可靠的多路传输
  4. 百度实习生前端面试面经
  5. apache-ab并发负载压力测试(转)
  6. SAP License:启动物料帐后不可更改物料价格的处理方法
  7. mongo 主从数据不同步
  8. 大数据分析有哪些特征
  9. vue-router动态路由设置参数可选
  10. 剑指Offer_编程题_16
  11. python读取同花顺数据_python爬取同花顺数据
  12. A/B/C类ip地址 掩码 广播地址 路由汇集 保留地址
  13. 计算机辅助设计师考试报考网址,计算机辅助设计师证如何报考?报名入口
  14. 红米手机停在机器人这里_红米开不了机,开机画面一直显示一个米兔机器人在修理的画面...
  15. 【官宣】顺丰同城宣布苏炳添出任首位品牌代言人,给你稳稳的幸福
  16. 稀里糊涂的准备开始了……
  17. 企业邮箱退信提示:“550 5.1.1 User unknown.”
  18. mysql去除括号以及括号中的字符
  19. html 动画标签,无HTML标签元素的恐龙动画
  20. 如何制作计算机启动盘,如何制作u盘启动盘 教你简单的操作方法

热门文章

  1. 为什么我们总觉得别人掌握的技术总是牛叉的?
  2. 最牛逼android上的图表库MpChart(二) 折线图
  3. 性能测试--jmeter中的用户自定义变量【13】
  4. 计算机中是如何存储图片的,电脑如何保存图片
  5. python 国产_再体验国产最好的Python IDE之NovalIDE
  6. python安装requests库提示更新_解决已经安装requests,却依然提示No module named requests问题...
  7. vue 如何清除浏览器的内存_浏览器垃圾回收机制与 Vue 项目内存泄漏场景分析
  8. grasshopper for rhino 6下载_漫谈算法设计与脚本语言(grasshopper, python)
  9. dnf剑魂buff等级上限_DNF:强化15武器失败,11年老剑魂选择离开,脱坑BUFF都难挽回!...
  10. C# internal和public