2021-06-04

SpringBoot 实现整合log4j2日志

关于日志级别

共有8个级别,按照从低到高为:All < Trace < Debug < Info < Warn < Error < Fatal < OFF.

  1. All: 最低等级的,用于打开所有日志记录.
  2. Trace: 是追踪,就是程序推进以下,你就可以写个trace输出,所以trace应该会特别多,不过没关系,我们可以设置最低日志级别不让他输出.
  3. Debug: 指出细粒度信息事件对调试应用程序是非常有帮助的.
  4. Info: 消息在粗粒度级别上突出强调应用程序的运行过程.
  5. Warn: 输出警告及warn以下级别的日志.
  6. Error: 输出错误信息日志.
  7. Fatal: 输出每个严重的错误事件将会导致应用程序的退出的日志.
  8. OFF: 最高等级的,用于关闭所有日志记录.

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

排除 spring-boot 自带的 logback 依赖

因为多个日志组件在一起的话会产生冲突 需要排除 spring-boot 自带的 logback 依赖
pom.中原有的spring-boot-web 依赖中添加 exclusion标签

<dependency>	<groupId>org.springframework.boot</groupId>	<artifactId>spring-boot-starter-web</artifactId>	<exclusions>		<exclusion>			<groupId>org.springframework.boot</groupId>			<artifactId>spring-boot-starter-logging</artifactId>		</exclusion>	</exclusions></dependency>

添加 log4j2 依赖

不需要设置版本 会自动跟具当前 spring-boot 版本进行匹配

<dependency>	<groupId>org.springframework.boot</groupId>	<artifactId>spring-boot-starter-log4j2</artifactId></dependency>

配置文件节点解析

根节点Configuration

有两个属性:status 和 monitorinterval ,有两个子节点:Appenders和Loggers(表明可以定义多个Appender和Logger)

status: 用来指定log4j本身的打印日志的级别.monitorinterval: 用于指定log4j自动重新配置的监测间隔时间,单位是s,最小是5s

Appenders节点

常见的有三种子节点:Console、RollingFile、File.

Console节点用来定义输出到控制台的Appender.

name: 指定Appender的名字.target: SYSTEM_OUT 或 SYSTEM_ERR,一般只设置默认:SYSTEM_OUT.PatternLayout: 输出格式,不设置默认为:%m%n.

File节点用来定义输出到指定位置的文件的Appender.

name: 指定Appender的名字.fileName: 指定输出日志的目的文件带全路径的文件名.PatternLayout: 输出格式,不设置默认为:%m%n.

RollingFile节点用来定义超过指定大小自动删除旧的创建新的的Appender.

name: 指定Appender的名字.fileName: 指定输出日志的目的文件带全路径的文件名.PatternLayout: 输出格式,不设置默认为:%m%n.filePattern: 指定新建日志文件的名称格式.Policies: 指定滚动日志的策略,就是什么时候进行新建日志文件输出日志.TimeBasedTriggeringPolicy: Policies子节点,基于时间的滚动策略,interval属性用来指定多久滚动一次,默认是1 hour。		modulate=true用来调整时间:比如现在是早上3am,interval是4,那么第一次滚动是在4am,接着是8am,12am…而不是7am.SizeBasedTriggeringPolicy: Policies子节点,基于指定文件大小的滚动策略,size属性用来定义每个日志文件的大小.DefaultRolloverStrategy: 用来指定同一个文件夹下最多有几个日志文件时开始删除最旧的,创建新的(通过max属性)。

Loggers节点

常见的有两种:Root和Logger.

Root节点

用来指定项目的根日志,如果没有单独指定Logger,那么就会默认使用该Root日志输出

level: 日志输出级别,共有8个级别,按照从低到高为:All < Trace < Debug < Info < Warn < Error < Fatal < OFF.
AppenderRef: Root的子节点,用来指定该日志输出到哪个Appender.

Logger节点

用来单独指定日志的形式,比如要为指定包下的class指定不同的日志级别等。

level: 日志输出级别,共有8个级别,按照从低到高为:All < Trace < Debug < Info < Warn < Error < Fatal < OFF.
name: 用来指定该Logger所适用的类或者类所在的包全路径,继承自Root节点.
AppenderRef: Logger的子节点,用来指定该日志输出到哪个Appender,如果没有指定,就会默认继承自Root.如果指定了,那么会在指定的这个Appender和Root的Appender中都会输出,此时我们可以设置Logger的additivity="false"只在自定义的Appender中进行输出。

配置 log4j2

将配置 log4j2. 配置文件放在 resource 目录中
例如以下完整的日志配置文件

<?








原文转载:http://www.shaoqun.com/a/785199.html

跨境电商:https://www.ikjzd.com/

mein:https://www.ikjzd.com/w/1601

徐家骏:https://www.ikjzd.com/w/1803

国际标准书号:https://www.ikjzd.com/w/174

塔图:https://www.ikjzd.com/w/2274


关于日志级别共有8个级别,按照从低到高为:All<Trace<Debug<Info<Warn<Error<Fatal<OFF.All:最低等级的,用于打开所有日志记录.Trace:是追踪,就是程序推进以下,你就可以写个trace输出,所以trace应该会特别多,不过没关系,我们可以设置最低日志级别不让他输出.Debug:指出细粒度信息事件对调试应用程序是非
just launched卖家:https://www.ikjzd.com/w/599
速卖通黑名单:https://www.ikjzd.com/w/625
生意宝:https://www.ikjzd.com/w/1674
Digio:https://www.ikjzd.com/w/1889
Musiio:https://www.ikjzd.com/w/2087
warm+公寓:https://www.ikjzd.com/w/2248
宝贝格子:https://www.ikjzd.com/w/1322
口述:心痛 女友的床上还放着男式睡衣:http://lady.shaoqun.com/m/a/12924.html
口述:我与异性合租的经历:http://lady.shaoqun.com/m/a/143139.html
抗拒不了外国男人的诱惑 口述被老外撩到不能自已:http://lady.shaoqun.com/m/a/275304.html
那次长途车上的故事让我难忘 口述长途车上有了心动的感觉:http://lady.shaoqun.com/m/a/269958.html
口述我和男邻居的婚外情故事 我竟然背着丈夫做了糊涂事:http://lady.shaoqun.com/a/269599.html
老婆怀孕时妈妈帮我找小三:http://www.30bags.com/a/251348.html
口述:男友不想娶我只因我曾整容:http://www.30bags.com/a/254272.html
好爽快点在快点出水啦 那晚疯狂地女网友竟是我儿子的班主任:http://www.30bags.com/a/254967.html
我的网恋女友居然结婚了 口述被欺骗的一次网恋经过:http://www.30bags.com/m/a/250778.html
儿媳妇全家交换 公公冲动之下导致家破人亡(1):http://www.30bags.com/m/a/254840.html

No comments:

Post a Comment