SpringBoot集成log4j2

  • 1. Log4j2优点
  • 2. Log4j2日志级别
    • 2.1 级别
    • 2.2 视图
  • 3. SpringBoot整合Log4j2配置
  • 4. log4j2.yml配置

1. Log4j2优点

参考官方文档:https://logging.apache.org/log4j/2.x/

相比与其他的日志系统,log4j2丢数据的情况少;在多线程环境下,性能高于logback等10倍以上;利用jdk1.5并发的特性,减少了死锁的发生。

2. Log4j2日志级别

2.1 级别

在log4j2中, 共有8个级别,按照从低到高为:
ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF。

  • All:最低等级的,用于打开所有日志记录。
  • Trace:是追踪,就是程序推进一下。
  • Debug:指出细粒度信息事件对调试应用程序是非常有帮助的。
  • Info:消息在粗粒度级别上突出强调应用程序的运行过程。
  • Warn:输出警告及warn以下级别的日志。
  • Error:输出错误信息日志。
  • Fatal:输出每个严重的错误事件将会导致应用程序的退出的日志。
  • OFF:最高等级的,用于关闭所有日志记录。

程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少 。

2.2 视图


通过视图可以看到:

  • 左边竖栏是Event Level,右边横栏是LoggerConfig Level。

  • YES的意思就是这个event可以通过filter,NO的意思就是不能通过filter。

  • 可以看到,INFO级别在Event是无法被ERROR级别的LoggerConfig的filter接受的,所以,INFO信息不回被输出。

3. SpringBoot整合Log4j2配置

官方文档:https://docs.spring.io/spring-boot/docs/1.5.19.RELEASE/reference/htmlsingle/#howto-configure-log4j-for-logging

 <!-- 排除 Spring-boot-starter 默认的日志配置 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency><!-- 配置 log4j2 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId></dependency><!-- 加上这个才能辨认到log4j2.yml文件 --><dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-yaml</artifactId></dependency>

4. log4j2.yml配置

  • application.yml 引入log4j2.yml
# log4j2 日志配置
logging:config: classpath:log4j2.yml
  • log4j2.yml配置
Configuration:status: WARNname: YAMLConfigTestproperties:property:name: project.namevalue: vhrthresholdFilter:level: debugappenders:#只接受程序中DEBUG级别的日志进行处理Console:name: Consoletarget: SYSTEM_OUTThresholdFilter:level: DEBUGonMatch: ACCEPTonMismatch: DENYPatternLayout:Pattern: "[%d{HH:mm:ss.SSS}] %-5level %class{36} %L %M - %msg%xEx%n"#处理DEBUG级别的日志,并把该日志放到logs/debug.log文件中RollingFile:#打印出DEBUG级别日志,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档- name: RollingFileDebugfileName: ./logs/${project.name}/debug.logfilePattern: "logs/${project.name}/$${date:yyyy-MM}/debug-%d{yyyy-MM-dd}-%i.log.gz"PatternLayout:Pattern: "[%d{yyyy-MM-dd HH:mm:ss}] %-5level %class{36} %L %M - %msg%xEx%n"Filters:ThresholdFilter:- level: DEBUG- level: INFOonMatch: DENYonMismatch: NEUTRALPolicies:TimeBasedTriggeringPolicy:  # 按天分类modulate: trueinterval: 1DefaultRolloverStrategy:     # 文件最多100个max: 100#处理INFO级别的日志,并把该日志放到logs/info.log文件中- name: RollingFileInfofileName: ./logs/${project.name}/info.logfilePattern: "logs/${project.name}/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log.gz"PatternLayout:Pattern: "[%d{yyyy-MM-dd HH:mm:ss}] %-5level %class{36} %L %M - %msg%xEx%n"Filters:#只接受INFO级别的日志,其余的全部拒绝处理ThresholdFilter:- level: INFO- level: WARNonMatch: DENYonMismatch: NEUTRALPolicies:TimeBasedTriggeringPolicy:  # 按天分类modulate: trueinterval: 1DefaultRolloverStrategy:     # 文件最多100个max: 100#处理WARN级别的日志,并把该日志放到logs/warn.log文件中- name: RollingFileWarnfileName: ./logs/${project.name}/warn.logfilePattern: "logs/${project.name}/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log.gz"PatternLayout:Pattern: "[%d{yyyy-MM-dd HH:mm:ss}] %-5level %class{36} %L %M - %msg%xEx%n"Filters:ThresholdFilter:- level: WARN- level: ERRORonMatch: DENYonMismatch: NEUTRALPolicies:TimeBasedTriggeringPolicy:  # 按天分类modulate: trueinterval: 1DefaultRolloverStrategy:     # 文件最多100个max: 100#处理error级别的日志,并把该日志放到logs/error.log文件中- name: RollingFileErrorfileName: ./logs/${project.name}/error.logfilePattern: "logs/${project.name}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log.gz"PatternLayout:Pattern: "[%d{yyyy-MM-dd HH:mm:ss}] %-5level %class{36} %L %M - %msg%xEx%n"ThresholdFilter:level: ERRORPolicies:TimeBasedTriggeringPolicy:  # 按天分类modulate: trueinterval: 1DefaultRolloverStrategy:     # 文件最多100个max: 100#druid的日志记录追加器- name: druidSqlRollingFilefileName: ./logs/${project.name}/druid-sql.logfilePattern: "logs/${project.name}/$${date:yyyy-MM}/druid-sql-%d{yyyy-MM-dd}-%i.log.gz"PatternLayout:Pattern: "[%d{yyyy-MM-dd HH:mm:ss}] %-5level %L %M - %msg%xEx%n"Policies:TimeBasedTriggeringPolicy:  # 按天分类modulate: trueinterval: 1DefaultRolloverStrategy:     # 文件最多100个max: 100loggers:logger:#记录druid-sql的记录name: druid.sql.Statementlevel: debugadditivity: falseappender-ref:ref: druidSqlRollingFile#log4j2 自带过滤日志Logger:- name: org.apache.catalina.startup.DigesterFactorylevel: error- name: org.apache.catalina.util.LifecycleBaselevel: error- name: org.apache.coyote.http11.Http11NioProtocollevel: warn- name: org.apache.sshd.common.util.SecurityUtilslevel: warn- name: org.apache.tomcat.util.net.NioSelectorPoollevel: warn- name: org.crsh.pluginlevel: warn- name: org.crsh.sshlevel: warn- name: org.eclipse.jetty.util.component.AbstractLifeCyclelevel: error- name: org.hibernate.validator.internal.util.Versionlevel: warn- name: org.springframework.boot.actuate.autoconfigure.CrshAutoConfigurationlevel: warn- name: org.springframework.boot.actuate.endpoint.jmxlevel: warn- name: org.thymeleaflevel: warnroot:level: INFOappender-ref:- ref: Console- ref: RollingFileInfo- ref: RollingFileWarn- ref: RollingFileError- ref: RollingFileDebug

实操可行,欢迎点赞、收藏、关注。技术交流➕企鹅:995062855(同vx,注明来意)。

SpringBoot 集成log4j2相关推荐

  1. SpringBoot集成Log4j2框架

    1.说明 本文详细介绍Spring Boot集成Log4j2框架的方法, 基于已经创建好的Spring Boot工程, 由于Spring Boot默认使用的是Logback框架, 需要先排除掉Logb ...

  2. springboot集成log4j2 附完整配置

    首先看一下springboot官方文档: https://docs.spring.io/spring-boot/docs/1.5.19.RELEASE/reference/htmlsingle/#ho ...

  3. spring、springboot集成 log4j日志、log4j2日志以及slf4j

    1.查看pringboot自带的日志框架 新建一个springboot 工程,查看依赖树 通过查看依赖树可以发现,springboot自带被loggong管理的log4j .logback等日志相关的 ...

  4. SpringBoot集成Maven工程

    1.说明 通过Maven向导创建一个Maven Project, 而非Spring Boot向导创建Spring Starter Project, 然后通过手工修改的方式, 使这个Maven工程支持S ...

  5. SpringBoot集成MyBatis-Plus框架详细方法

    1.说明 本文详细介绍Spring Boot集成MyBatis-Plus框架的方法, 使用MySQL数据库进行测试, 包括完整的开发到测试步骤, 从一开始的Spring Boot工程创建, 到MySQ ...

  6. 关于springboot整合log4j2的史上最全配置解释

    说明:本文为作者原创,欢迎大家转载,不过记得声明出处哦~ 前言 日志管理在软件开发中必不可少,而Java开发中,log4j2以其简单易用的特点使其普及度非常高.但非常可惜的是log4j2的官方文档本人 ...

  7. java常用日志框架日志门面及实现 SLF4J 、Jboss-logging 、JCL、Log4j、Logback、Log4j2、JUL,springboot集成 log4j、log4j2

    java常用日志框架日志门面SLF4J .Jboss-logging .JCL.Log4j及实现 Logback.Log4j2.JUL,springboot集成 log4j.log4j2 .logba ...

  8. springboot项目集成log4j2打成jar包 ,引入外边的log4j2文件,运行日志无法打印

    springboot项目集成log4j2打成jar包 ,引入外边的log4j2文件,运行日志无法打印 问题描述 因为项目中已经有log4j2文件,所以打的jar中也有,在application.yml ...

  9. SpringBoot应用与原理之集成Log4j2

    一 本章概述 SpringBoot应用替换默认的Logback日之框架,采用Log4j2实现 二 SpringBoot应用集成Log4j2 1 替换默认的logback <dependency& ...

最新文章

  1. python中tolist_python - 无法使用Gremlinpython使用“ .toList()”列出Janusgraph中存在的所有顶点 - 堆栈内存溢出...
  2. HTML表中的自动换行
  3. 云原生时代, Kubernetes 多集群架构初探
  4. 20165214 预备作业3 Linux安装及学习
  5. java魔兽猎人_Java基于Swing实现的打猎射击游戏代码
  6. EntiyFramework :Update model from database引起的两个问题
  7. 【PAT - 甲级1045】Favorite Color Stripe(30分)(dp,LIS类问题)
  8. WebService中文件传输
  9. 第19章 可空值类型
  10. flask连接mysql数据库_Flask与Mysql数据库建立连接
  11. HTML- 表单(简单易懂)
  12. 农业大省吉林谋乡村全面振兴:农业强、农村美、农民富
  13. 工作的硬实力/软技巧
  14. 概率论与数理统计---------大数定律
  15. 11 款用于优化、分析源代码的Java工具
  16. 2019.11.13
  17. 在win10系统上使用Hyper-v创建虚拟机(win7)并设置文件共享
  18. ae怎么设置gpu渲染_有玩AE的吗?求教GPU渲染问题!!
  19. 数字藏品赋能实体产业释放了哪些利好?
  20. Pillow库学习笔记之Image.convert去底色详解

热门文章

  1. undefined reference to '__android_log_print'解决方案
  2. Bailian3252 最大正向匹配【字符串匹配】
  3. Bailian3756 多边形内角和【数学计算】
  4. CCF NOI1039 2的n次方
  5. Graphviz样例之有向图
  6. UVA10878 Decode the tape【编码】
  7. HDU1164 Eddy's research I(解法二)【废除!!!】
  8. 三网 —— 计算机网络、电信网络、广播电视网络(移动网络)
  9. Inception V3 的 tensorflow 实现
  10. Python 数据结构与算法 —— 从分治的角度看快速排序、归并排序