依赖包:

  1. <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
  2. <dependency>
  3. <groupId>org.apache.logging.log4j</groupId>
  4. <artifactId>log4j-api</artifactId>
  5. <version>2.11.1</version>
  6. <scope>provided</scope>
  7. </dependency>
  8. <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
  9. <dependency>
  10. <groupId>org.apache.logging.log4j</groupId>
  11. <artifactId>log4j-core</artifactId>
  12. <version>2.11.1</version>
  13. <scope>provided</scope>
  14. </dependency>

log4j2.xml配置文件:(该配置文件需要放到resources目录下)

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration status="error">
  3. <!-- 先定义所有的appender -->
  4. <appenders>
  5. <!-- 这个输出控制台的配置 -->
  6. <Console name="Console" target="SYSTEM_OUT">
  7. <!-- 控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
  8. <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
  9. <!-- 这个都知道是输出日志的格式 -->
  10. <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %class{36} %M : %msg%xEx%n"/>
  11. </Console>
  12.  
  13. <!-- 文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,这个也挺有用的,适合临时测试用 -->
  14. <!-- append为TRUE表示消息增加到指定文件中,false表示消息覆盖指定的文件内容,默认值是true -->
  15. <File name="log" fileName="logs/test.log" append="false">
  16. <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
  17. <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
  18. </File>
  19.  
  20. <!-- 添加过滤器ThresholdFilter,可以有选择的输出某个级别以上的类别 onMatch="ACCEPT" onMismatch="DENY"意思是匹配就接受,否则直接拒绝 -->
  21. <File name="ERROR" fileName="logs/error.log">
  22. <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
  23. <PatternLayout pattern="%d{yyyy.MM.dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>
  24. </File>
  25.  
  26. <!-- 这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档 -->
  27. <RollingFile name="RollingFile" fileName="logs/common.log"
  28. filePattern="logs/$${date:yyyy-MM}/web-%d{MM-dd-yyyy}-%i.log.gz">
  29. <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>
  30. <TimeBasedTriggeringPolicy modulate="true" interval="1" />
  31. <!--<SizeBasedTriggeringPolicy size="200MB"/>-->
  32. </RollingFile>
  33. </appenders>
  34.  
  35. <!-- 然后定义logger,只有定义了logger并引入的appender,appender才会生效 -->
  36. <loggers>
  37. <!-- 建立一个默认的root的logger -->
  38. <root level="trace">
  39. <appender-ref ref="RollingFile"/>
  40. <appender-ref ref="Console"/>
  41. <appender-ref ref="ERROR" />
  42. <appender-ref ref="log"/>
  43. </root>
  44.  
  45. </loggers>
  46. </configuration>

使用代码范例:

  1. private static Logger logger = LogManager.getLogger(test.class);
  2. ...
  3. public void XXX(){
  4. ...
  5. logger.debug("XXX");
  6. }

Log4j2配置与使用的更多相关文章

  1. 转:spring boot log4j2配置(使用log4j2.yml文件)---YAML 语言教程

    转:spring boot log4j2配置(使用log4j2.yml文件) - CSDN博客http://blog.csdn.net/ClementAD/article/details/514988 ...

  2. log4j2配置ThresholdFilter,让info文件记录error日志

    日志级别: 是按严重(重要)程度来分的(如下6种): ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < ...

  3. Log4j2配置之Appender详解

    Log4j2配置之Appender详解 Appender负责将日志事件传递到其目标.每个Appender都必须实现Appender接口.大多数Appender将扩展AbstractAppender,它 ...

  4. Log4j2 - 配置

    官方文档:http://logging.apache.org/log4j/2.x/index.html 1 概述 Log4j2的配置包含四种方式,其中3种都是在程序中直接调用Log4j2的方法进行配置 ...

  5. log4j2配置详解

    1.    log4j2需要两个jar   log4j-api-2.x.x.jar    log4j-core-2.x.x.jar  .log4j和log4j2有很大的区别,jar包不要应错. 2. ...

  6. 【Log4j2 配置详解】log4j2的资源文件具体怎么配置

    可以先附上一个log4j2的资源文件详细内容,对照着看 ### set log levels ### log4j.rootLogger = INFO , C , D , E ### console # ...

  7. Log4j2 配置笔记(Eclipse+maven+SpringMVC)

    Log4j2相关介绍可以百度看下,这里只注重配置Log4j2 能够马上跑起来: 1.pom.xml文件中添加Log4j2的相关Maven配置信息 <!-- log4j2 --> <d ...

  8. Spring Boot初探之log4j2配置

    一.背景 下面讲在使用Spring Boot搭建微服务框架时如何配置log4j2,通过log4j2输出系统中日志信息. 二.添加log4j2的配置文件 在项目的src/main/rescources目 ...

  9. spring boot log4j2配置

    [传送门]:log4j官网配置文件详解 1. 排除 spring boot 自带的  spring-boot-starter-logging 依赖 <dependency> <gro ...

随机推荐

  1. 七彩爱心灯手机APP

    安卓IDE3.20以后不包含sdk,需要更新重新下载. 1 下载工程 https://github.com/Dongvdong/Lovelamp_app 2打开工程 如果换了工程移动换了文件夹 (1) ...

  2. win7 64位操作系统 电脑桌面出现this computer is being attacked的窗口

    本人为win7 64位操作系统,戴尔笔记本电脑. 昨天在教室写程序来着,突然桌面上出现this computer is being attacked的窗口,如下所示.每隔半分钟左右出现在电脑桌面上转两 ...

  3. <网络编程>IO复用

    IO复用是一种机制,一个进程可以监听多个描述符,一旦某个描述符就绪(读就绪和写就绪),能够同志程序进行相应的读写操作. 目前支持I/O复用的系统调用有select,poll,pselect,epoll ...

  4. [HNOI2019]多边形[二叉树建模、组合计数]

    题意 题目链接 分析 不难发现终态一定是 \([2,n-2]\) 中的每个点都与 \(n\) 连边. 关于凸多边形的划分问题,可以将它看作一棵二叉树:每个树点可以看做点可以看做边. 本题中看做点来处理 ...

  5. DOM(三)

    Text类型 文本节点由Text类型表示,包含的是可以照字面解释的纯文本内容,纯文本中可以包含转义后的HTML字符,但不包含HTML代码,Text节点具有以下特征: nodeType值为3: node ...

  6. 深入理解[Master-Worker模式]原理与技术

    Master-Worker模式是常用的并行模式之一.它的核心思想是,系统由两类进程协作工作:Master进程和Worker进程.Master进程负责接收和分配任务,Worker进程负责处理子任务.当各 ...

  7. Mysql字段名与保留字冲突导致的异常解决

    一:引言 用hibernate建表时经常遇到的一个异常:Error executing DDL via JDBC Statement 方法: 查看报错sql语句.问题就在这里. 我是表名(字段名)与保 ...

  8. 关于php,python,javascript文件或者模块导入引入的区别和联系

    前言: 我们经常看到编程语言之间,文件或者模块的引来引去的,但是他们在各个编程语言之间有什么区别和联系呢? 1.javascript (1).全局引入方式: <script src='xxxxx ...

  9. python 实现快速排序

    一.快排思想 快速排序可以理解为是对冒泡排序的一种改进,把一组数,按照初始选定的标杆(参照数), 分别从两端开始排序,左端'i'只要小于标杆(参照数)的数,右端'j'只要大于标杆(参照数)的数, i- ...

  10. WIN10 devtoolsuser

    visual studio - UWP: What is the DevToolsUser Password? - Stack Overflowhttps://stackoverflow.com/qu ...