spring boot2 配置 log4j2

╰+哭是因爲堅強的太久メ 2022-04-22 17:00 247阅读 0赞

一、pom.xml添加依赖

  1. <!--去掉springboot本身日志依赖-->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter</artifactId>
  5. <exclusions>
  6. <exclusion>
  7. <groupId>org.springframework.boot</groupId>
  8. <artifactId>spring-boot-starter-logging</artifactId>
  9. </exclusion>
  10. </exclusions>
  11. </dependency>
  12. <!--log4j2-->
  13. <dependency>
  14. <groupId>org.springframework.boot</groupId>
  15. <artifactId>spring-boot-starter-log4j2</artifactId>
  16. </dependency>

二、创建log4j2.xml或log4j2-spring.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--设置log4j2的自身log级别为warn-->
  3. <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
  4. <!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,
  5. 当设置成trace时,你会看到log4j2内部各种详细输出-->
  6. <!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->
  7. <configuration status="warn" monitorInterval="30">
  8. <!--先定义所有的appender-->
  9. <appenders>
  10. <!--这个输出控制台的配置-->
  11. <console name="Console" target="SYSTEM_OUT">
  12. <!--输出日志的格式-->
  13. <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
  14. </console>
  15. <!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,这个也挺有用的,适合临时测试用-->
  16. <File name="log" fileName="logs/test.log" append="false">
  17. <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
  18. </File>
  19. <!-- 这个会打印出所有的info及以下级别的信息,每次大小超过size,
  20. 则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
  21. <RollingFile name="RollingFileInfo" fileName="logs/info.log"
  22. filePattern="logs/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log">
  23. <Filters>
  24. <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
  25. <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
  26. <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
  27. </Filters>
  28. <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
  29. <Policies>
  30. <TimeBasedTriggeringPolicy/>
  31. <SizeBasedTriggeringPolicy size="100 MB"/>
  32. </Policies>
  33. <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了24 -->
  34. <DefaultRolloverStrategy max="24"/>
  35. </RollingFile>
  36. <RollingFile name="RollingFileWarn" fileName="logs/warn.log"
  37. filePattern="logs/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log">
  38. <Filters>
  39. <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
  40. <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
  41. </Filters>
  42. <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
  43. <Policies>
  44. <TimeBasedTriggeringPolicy/>
  45. <SizeBasedTriggeringPolicy size="100 MB"/>
  46. </Policies>
  47. <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了24 -->
  48. <DefaultRolloverStrategy max="24"/>
  49. </RollingFile>
  50. <RollingFile name="RollingFileError" fileName="logs/error.log"
  51. filePattern="logs/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log">
  52. <ThresholdFilter level="ERROR"/>
  53. <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
  54. <Policies>
  55. <TimeBasedTriggeringPolicy/>
  56. <SizeBasedTriggeringPolicy size="100 MB"/>
  57. </Policies>
  58. <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了24 -->
  59. <DefaultRolloverStrategy max="24"/>
  60. </RollingFile>
  61. </appenders>
  62. <!--然后定义logger,只有定义了logger并引入的appender,appender才会生效-->
  63. <loggers>
  64. <!--过滤掉spring和hibernate的一些无用的debug信息-->
  65. <logger name="org.springframework" level="INFO">
  66. </logger>
  67. <logger name="org.mybatis" level="INFO">
  68. </logger>
  69. <root level="all">
  70. <appender-ref ref="Console"/>
  71. <appender-ref ref="RollingFileInfo"/>
  72. <appender-ref ref="RollingFileWarn"/>
  73. <appender-ref ref="RollingFileError"/>
  74. </root>
  75. </loggers>
  76. </configuration>

无须配置application.yml

  1. logging:
  2. config: classpath:log4j2.xml

启动项目后,会在项目下新建一个logs的文件夹,下面有日志,刷新项目查看

参考:

springboot 中 log4j2的使用及配置讲解

https://blog.csdn.net/sdlyjzh/article/details/79416607

springBoot完美配置log4j2

https://blog.csdn.net/V_Come_On/article/details/79408773

发表评论

表情:
评论列表 (有 0 条评论,247人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Spring Boot 整合Log4j2

    写在前面 学习Log4j2与Spring Boot的整合是为了完成我的ELK体系中的日志生产这一部分,通过学习Log4j2中的语法以及定义规范来生产日志. 自定义日志