2025年swagger2(swagger2.10.0怎么提示错误)

swagger2(swagger2.10.0怎么提示错误)Apache Log4j2 是对 Log4j 的升级 它比其前身 Log4j 1 x 提供了重大改进 并提供了 Logback 中可用的许多改 进 同时修复了 Logback 架构中的一些问题 主要有 异常处理 在 logback 中 Appender 中的异常不会被应用感知到 但是在 log4j2 中 提供了一些异常处理机 制 性能提升 log4j2 相较于 log4j 和 logback 都具有明显的性能提升 有 18 倍性能提升 后面会有官方测试的数 据 自动重载配置




Apache Log4j2 是对 Log4j 的升级,它比其前身 Log4j 1.x 提供了重大改进,并提供了 Logback 中可用的许多改

进,同时修复了 Logback 架构中的一些问题,主要有:

  • 异常处理,在logback中,Appender中的异常不会被应用感知到,但是在log4j2中,提供了一些异常处理机
    制。
  • 性能提升,log4j2 相较于log4j 和 logback 都具有明显的性能提升,有18倍性能提升,后面会有官方测试的数
    据。
  • 自动重载配置,参考了logback的设计,当然会提供自动刷新参数配置,最实用的就是我们在生产上可以动态
    的修改日志的级别而不需要重启应用。
  • 无垃圾机制,log4j2 在大部分情况下,都可以使用其设计的一套无垃圾机制【对象重用、内存缓冲】,避免频
    繁的日志收集导致的 jvm gc。

log4j、logback、log4j2都是一种日志具体实现框架,所以既可以单独使用也可以结合slf4j一起搭配使用。


2.1 pom依赖

springboot 默认使用的日志框架为 logback,要想使用 log4j2,需要从 spring-boot-starter-web 中排除对

spring-boot-starter-logging 依赖。

引入Log4j2依赖:

的依赖关系:

Spring log4j2 不生效_spring boot

上面的 log4j2 已经适配了 slf4j 日志门面,内部依赖了slf4j、log4j。

SpringBoot 使用 log4j2 作为日志门面,但是最终也是通过 slf4j 调用 logback。

完整的依赖:

2.2 log4j2配置

创建文件,放在工程目录里。这样就可以不加任何配置。如果你需要指定配置

文件需要在Spring boot 配置文件中指定 属性。

下面是一份比较详细的 配置文件 :

基本上你拿上面的配置根据你自己的需要更改一下即可生效。

注意 windows 下 会将日志打印到用户目录下。

2.3 启动类

2.4 测试

执行输出:

查看生成的文件:

Spring log4j2 不生效_spring boot_02

Spring log4j2 不生效_spring_03

Spring log4j2 不生效_xml_04

Spring log4j2 不生效_xml_05

Spring log4j2 不生效_spring_06

由于设置了日志等级为info,所以debug不会有输出。

2.5 使用@Slf4j注解输出日志

中的 注解可以很方便的使用 对象。

日常开发尽量使用门面来处理日志,尽量避免使用具体的日志框架。

引入依赖:

编写controller:

2.6 测试

启动应用,访问

Spring log4j2 不生效_spring boot_07

Spring log4j2 不生效_spring boot_08

要想使 log4j2 配置生效,需要在 resources 目录下新建 log4j2.xml,springboot 会自动找到配置文件,并加载。

3.1 日志级别

log4j2共分8个日志级别,按从低到高排列为:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF:

设置应用程序的日志级别后,将输出该级别及以上的日志。如,设置日志级别为INFO,那么程序会输出INFO、

WARN、ERROR及FATAL日志。

3.2 monitorInterval

监视配置文件变化间隔时间。如设置为30,表示每隔30s,程序会自动检测配置文件是否修改,如果修改,就更新

配置文件。

3.3 properties

定义属性,方便在配置文件中引用。我们在这配置了 LOG_DIR、HISTORY_LOG_DIR、FILE_NAME、SPLIT_SIZE、

FILE_COUNT、INTERVAL 及 LOG_PATTERN 属性。

3.4 appenders

定义一系列的日志输出,可输出至控制台或者文件中。主要有三种日志输出方式:

  • Console:定义输出至控制台的方式;
  • File:定义输出至文件的方式;
  • RollingFile:定义输出至文件的方式,但会以一定的策略删除旧日志文件,并创建新的日志文件;
    三种方式有共同的子节点。
3.4.1filters

定义日志输出等级。

如果想输出某个等级及其以上的日志,可做如下配置:

以上配置过滤INFO级别及其以上的日志。

如果想单独输出某个等级的日志,可做如下配置:

以上配置只过滤DEBUG日志,INFO及其以上等级的日志将被拒绝。

3.4.2 Console日志输出

定义日志输出至控制台,主要属性有name、target、filters和PatternLayout。

3.4.3 File日志输出

定义日志输出至文件,示例配置如下:

主要属性和子节点有name、fileName、append、filters和PatternLayout。

  • fileName:定义输出文件名;
  • append:当为true时,新增日志将被追加至文件末尾;如果为false,那么新日志将覆盖旧日志;
3.4.4 RollingFile日志输出

也是定义日志输出至文件,不同的是RollingFile可以定义日志文件存档策略。比如按照时间存档,每天备份一次,

最大存档30天等等。

主要属性和子节点有name、fileName、filePattern、filters、PatternLayout、Policies、

TimeBasedTriggeringPolicy、SizeBasedTriggeringPolicy 和 DefaultRolloverStrategy。

3.4.5 Socket日志输出

定义日志输出至数据库或者其它日志管理系统,如elk等。

以上定义日志输出至127.0.0.1:4560服务器,也就是我本地创建的elk日志管理系统。

3.5 loggers

所有在 appenders 里定义的 appender 都需要在 logger 下引用,否则 appender 的配置就不会生效。

如果要过滤掉一些 debug 信息,可以在 logger 中屏蔽掉,如下屏蔽掉 org.mybatis 中 info 级别以下的日志:

设置项目中的日志输出至指定的文件,并且在控制台中输出,配置如下:

root 节点为兜底操作,所有在 appenders 中配置的,但没有在其它 logger 中输出的,都会在 root 的 logger 中

输出。

log4j与log4j2的配置文件中的属性有所不同,具体请参考:

5.1 占位符

使用占位符格式化参数。

输出:

5.2 String.format的形式格式化参数

log4j2 中除了支持的参数占位符,还支持的形式。

注意,如果想使用的形式,需要使用。

输出:

5.3 使用logger.printf格式化参数

log4j2 的 Logger 接口中,还有一个 printf 方法,无需创建,就可以使用

String.format的形式。

输出:

5.4 惰性打日志(lazy logging)

输出:


编程小号
上一篇 2025-02-26 09:01
下一篇 2025-03-17 11:40

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/7381.html