Springboot integrates log4j2 logging framework

Once was 2021-01-22 01:13:56
springboot integrates log4j2 log logging


Preface

The code run log is very important for a project . What this article records is SpringBoot And Log4j2 The process of integration and configuration , As for other logging frameworks and Log4j2 Comparison of , You can check the information yourself .

Environmental Science

  • JDK 8
  • Gradle 6.7

Get ready

exclude Logback rely on

To rule out first SpringBoot Default Logback Log framework , stay build.gradle Add the following configuration .

configurations {
implementation.exclude module: 'spring-boot-starter-logging'
}

introduce Log4j2 rely on

We use Log4j2 Supported by YAML Format profile , To support this format, you need to add jackson-dataformat-yaml rely on , Details are available file .

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-log4j2'
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml'
}

understand

The log level

Standard Level Int Level
OFF 0
FATAL 100
ERROR 200
WARN 300
INFO 400
DEBUG 500
TRACE 600
ALL Integer.MAX_VALUE


From low to high, they are :ALLTRACEDEBUGINFOWARNERRORFATALOFF

But because we use Slf4j The facade , therefore ALLFATAL and OFF Level cannot be used . Can read articles Why does alibaba prohibit engineers from directly using the logging system (Log4j、Logback) Medium API Understand the knowledge of log facade .

Configuration file structure

  • Appenders

    • Appender

      • Layout
      • Filter
      • Policy
      • Strategy
      • ...
  • Loggers

    • Logger
    • RootLogger

Appender

It can be understood as 「 The Conduit 」, Control where the logs are kept . The other configuration parameters below are based on rollingFileAppender For example .

other Appender Related documents can be referred to : Log4j2 Official documents Appender part .
Layout
Parameters explain
%d Log time
%level The level of logging
%pid process ID
%t The thread of
%c Logger name
%msg Log text
%n A newline
%highlight Color highlight


Control log format , It is generally used patternLayout.

appenders:
rollingFile:
patternLayout:
# Log format template
pattern: "%d{DEFAULT} %5level %pid --- %c : %msg%n"

If you want to 「 Console 」 Print out the colored log information in the , Can be added to consoleAppender In the after pattern Add %highlight Parameters .

other Layout Related documents can be referred to : Log4j2 Official documents Layout part .
Filter

Control whether the log can enter the pipeline , In the example thresholdFilter.

 appenders:
rollingFile:
filters:
thresholdFilter:
# The level of matching >= info
level: info
onMatch: accept
onMismatch: neutral

Filter It can also be in Loggers In the hierarchy , Please refer to the document for details .

other Filter Related documents can be referred to : Log4j2 Official documents Filter part .
Policy

Control when the log (when) Filing . In the example sizeBasedTriggeringPolicy and timeBasedTriggeringPolicy.

appenders:
rollingFile:
# Log archive file name template
filePattern: log/backup/$${date:yyyy-MM}/%d{yyyy-MM-dd}_${projectName}_%i.log
policies:
# Log file arrives 20 MB Trigger when
sizeBasedTriggeringPolicy:
size: 20 MB
# Archive logs in days
timeBasedTriggeringPolicy:
interval: 1

Be careful filePattern The smallest unit of time in the world is 「 God 」, therefore timeBasedTriggeringPolicy.interval = 1 when , The log will be 「 God 」 File for the unit .

other Policy Related documents can be referred to : Log4j2 Official documents Policy part .
Strategy

How to control the log (How) Filing . In the example defaultRolloverStrategy.

appenders:
rollingFile:
defaultRolloverStrategy:
max: 100

With the above Policy coordination , It can generate up to 100 Log files , If the volume of a single log file has exceeded 20 MB, Just regenerate a new log file , And file the log file . Up to... Can be generated in a single day 100 individual , from max Parameter control .

other Strategy Related documents can be referred to : Log4j2 Official documents Strategy part .

Logger

Logger It can be understood as a router , It is used to specify which pipeline the log information generated in the class or package goes into .

  • RootLogger( You have to configure )
  • Logger
Other Logger Related documents can be referred to : Log4j2 Official documents Logger part .

summary

Here is a complete configuration plan , For your reference . It mainly realizes the following two functions :

  • The console prints color logs .
  • Log files are filed in days .
configuration:
name: log4j2YamlConfig
status: error
# attribute
properties:
property:
name: projectName
value: demo
# The Conduit
appenders:
# Console
console:
name: console
patternLayout:
pattern: "%d{DEFAULT} %highlight{%5level} %pid --- %highlight{%c}{STYLE=Logback} : %msg%n"
# Scrolling files
rollingFile:
name: rollingFile
fileName: log/${projectName}.log
filePattern: log/backup/$${date:yyyy-MM}/%d{yyyy-MM-dd}_${projectName}_%i.log
patternLayout:
pattern: "%d{DEFAULT} %5level %pid --- %c : %msg%n"
policies:
sizeBasedTriggeringPolicy:
size: 20 MB
timeBasedTriggeringPolicy:
interval: 1
defaultRolloverStrategy:
max: 100
filters:
thresholdFilter:
# The level of logging >= error
level: error
onMatch: accept
onMismatch: deny
# route
loggers:
root:
# The level of logging >= info
level: info
appenderRef:
- ref: console
- ref: rollingFile
版权声明
本文为[Once was]所创,转载请带上原文链接,感谢
https://javamana.com/2021/01/20210122011316729g.html

  1. 【计算机网络 12(1),尚学堂马士兵Java视频教程
  2. 【程序猿历程,史上最全的Java面试题集锦在这里
  3. 【程序猿历程(1),Javaweb视频教程百度云
  4. Notes on MySQL 45 lectures (1-7)
  5. [computer network 12 (1), Shang Xuetang Ma soldier java video tutorial
  6. The most complete collection of Java interview questions in history is here
  7. [process of program ape (1), JavaWeb video tutorial, baidu cloud
  8. Notes on MySQL 45 lectures (1-7)
  9. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  10. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  11. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  12. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  13. 【递归,Java传智播客笔记
  14. [recursion, Java intelligence podcast notes
  15. [adhere to painting for 386 days] the beginning of spring of 24 solar terms
  16. K8S系列第八篇(Service、EndPoints以及高可用kubeadm部署)
  17. K8s Series Part 8 (service, endpoints and high availability kubeadm deployment)
  18. 【重识 HTML (3),350道Java面试真题分享
  19. 【重识 HTML (2),Java并发编程必会的多线程你竟然还不会
  20. 【重识 HTML (1),二本Java小菜鸟4面字节跳动被秒成渣渣
  21. [re recognize HTML (3) and share 350 real Java interview questions
  22. [re recognize HTML (2). Multithreading is a must for Java Concurrent Programming. How dare you not
  23. [re recognize HTML (1), two Java rookies' 4-sided bytes beat and become slag in seconds
  24. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  25. RPC 1: how to develop RPC framework from scratch
  26. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  27. RPC 1: how to develop RPC framework from scratch
  28. 一次性捋清楚吧,对乱糟糟的,Spring事务扩展机制
  29. 一文彻底弄懂如何选择抽象类还是接口,连续四年百度Java岗必问面试题
  30. Redis常用命令
  31. 一双拖鞋引发的血案,狂神说Java系列笔记
  32. 一、mysql基础安装
  33. 一位程序员的独白:尽管我一生坎坷,Java框架面试基础
  34. Clear it all at once. For the messy, spring transaction extension mechanism
  35. A thorough understanding of how to choose abstract classes or interfaces, baidu Java post must ask interview questions for four consecutive years
  36. Redis common commands
  37. A pair of slippers triggered the murder, crazy God said java series notes
  38. 1、 MySQL basic installation
  39. Monologue of a programmer: despite my ups and downs in my life, Java framework is the foundation of interview
  40. 【大厂面试】三面三问Spring循环依赖,请一定要把这篇看完(建议收藏)
  41. 一线互联网企业中,springboot入门项目
  42. 一篇文带你入门SSM框架Spring开发,帮你快速拿Offer
  43. 【面试资料】Java全集、微服务、大数据、数据结构与算法、机器学习知识最全总结,283页pdf
  44. 【leetcode刷题】24.数组中重复的数字——Java版
  45. 【leetcode刷题】23.对称二叉树——Java版
  46. 【leetcode刷题】22.二叉树的中序遍历——Java版
  47. 【leetcode刷题】21.三数之和——Java版
  48. 【leetcode刷题】20.最长回文子串——Java版
  49. 【leetcode刷题】19.回文链表——Java版
  50. 【leetcode刷题】18.反转链表——Java版
  51. 【leetcode刷题】17.相交链表——Java&python版
  52. 【leetcode刷题】16.环形链表——Java版
  53. 【leetcode刷题】15.汉明距离——Java版
  54. 【leetcode刷题】14.找到所有数组中消失的数字——Java版
  55. 【leetcode刷题】13.比特位计数——Java版
  56. oracle控制用户权限命令
  57. 三年Java开发,继阿里,鲁班二期Java架构师
  58. Oracle必须要启动的服务
  59. 万字长文!深入剖析HashMap,Java基础笔试题大全带答案
  60. 一问Kafka就心慌?我却凭着这份,图灵学院vip课程百度云