依赖包:

         <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.11.1</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.11.1</version>
<scope>provided</scope>
</dependency>

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

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

使用代码范例:

private static Logger logger = LogManager.getLogger(test.class);
...
public void XXX(){
...
logger.debug("XXX");
}

最新文章

  1. Jquery 获得当前标签的名称和标签属性
  2. 【krpano】krpano xml资源解密(破解)软件说明与下载(v1.4)
  3. 【Cocos2d-x 3.x】屏幕自适应匹配
  4. Mybatis入门例子
  5. 设想 Docker 下部署 KVM
  6. Go语言工程结构
  7. 如何让ASP.NET网站站点不停止 永远持续运行
  8. oracle游标小试
  9. ios开发之ios9UIWebView不显示网页问题
  10. 动态修改UINavigationBar的背景色
  11. 数字证书管理工具keytool常用命令介绍
  12. Android KeyCode 列表
  13. 使用shell解析脚本依赖关系,并自动补数
  14. 第五篇、Python之迭代器与生成器
  15. oracle自带总页数分页sql
  16. [二分答案][NOIP2015]跳石头
  17. jquery append 和appendTo
  18. MyBatis参数传递
  19. Android 的网络编程
  20. Lua用一维数组存储一个n阶方阵,输出这个方阵的正对角线上的数的和与反对角线上的数的和的差的绝对值。

热门文章

  1. 004_Python之all()\any()
  2. Spring Security(二十四):6.6 The Authentication Manager and the Namespace
  3. gcd和exgcd和lcm
  4. Intel发6款全新9代i9/i7/i5 CPU:巅峰8核
  5. js Ajax 请求返回
  6. LOJ2527 HAOI2018 染色 容斥、生成函数、多项式求逆
  7. 记一次项目上线后Log4j2不输出日志的坑
  8. Bing.com在.NET Core 2.1上运行!
  9. java OOM还在看log日志,兄弟你错的的很严重,正确方式是分析dump文件
  10. 自建 Gitlab (邮箱配置、拆分 PostgreSQL、Redis) + 随想