SpringBoot 配置log4j2日志输出

分手后的思念是犯贱 2022-06-12 01:22 454阅读 0赞

SpringBoot 配置log4j2日志输出

可以有两种优雅一点的方式:





















格式 依赖包 文件名
YAML com.fasterxml.jackson.core:jackson-databind com.fasterxml.jackson.dataformat:jackson-dataformat-yaml log4j2.yaml log4j2.yml
JSON com.fasterxml.jackson.core:jackson-databind log4j2.json log4j2.jsn

pom.xml

排除 web 包中的 logging,

引入log4j2依赖和yaml 文件识别。

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. <exclusions>
  5. <exclusion>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-logging</artifactId>
  8. </exclusion>
  9. </exclusions>
  10. </dependency>
  11. <!-- 引入log4j2依赖 -->
  12. <dependency>
  13. <groupId>org.springframework.boot</groupId>
  14. <artifactId>spring-boot-starter-log4j2</artifactId>
  15. </dependency>
  16. <!-- 加上这个才能辨认到log4j2.yml文件 -->
  17. <dependency>
  18. <groupId>com.fasterxml.jackson.dataformat</groupId>
  19. <artifactId>jackson-dataformat-yaml</artifactId>
  20. </dependency>

log4j2.yaml

resources 文件夹下增加 log4j2.yaml 文件。

  1. Configuration:
  2. status: warn
  3. Properties: # 定义全局变量
  4. Property: # 缺省配置(用于开发环境)。其他环境需要在VM参数中指定,如下:
  5. # 测试:-Dlog.level.console=warn -Dlog.level.xjj=trace
  6. # 生产:-Dlog.level.console=warn -Dlog.level.xjj=info
  7. - name: log.level.console
  8. value: trace
  9. - name: log.level.com.jeiker.demo.mapper
  10. value: trace
  11. - name: log.path
  12. value: /opt/logs
  13. - name: project.name
  14. value: my-app
  15. Appenders:
  16. Console: # 输出到控制台
  17. name: CONSOLE
  18. target: SYSTEM_OUT
  19. ThresholdFilter:
  20. level: ${sys:log.level.console} # “sys:”表示:如果VM参数中没指定这个变量值,则使用本文件中定义的缺省全局变量值
  21. onMatch: ACCEPT
  22. onMismatch: DENY
  23. PatternLayout:
  24. pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%5p %20t [%50F:%3L] - %m%n"
  25. RollingFile: # 输出到文件,超过128MB归档
  26. - name: ROLLING_FILE
  27. ignoreExceptions: false
  28. fileName: ${
  29. log.path}/${project.name}.log
  30. filePattern: "${ log.path}/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
  31. PatternLayout:
  32. pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%5p %20t [%50F:%3L] - %m%n"
  33. Policies:
  34. SizeBasedTriggeringPolicy:
  35. size: "128 MB"
  36. DefaultRolloverStrategy:
  37. max: 1000
  38. Loggers:
  39. Root:
  40. level: info
  41. AppenderRef:
  42. - ref: CONSOLE
  43. - ref: ROLLING_FILE
  44. Logger: # 为 com.jeiker.demo.mapper 包配置特殊的Log级别,方便调试 SQL 语句输出
  45. - name: log.level.com.jeiker.demo.mapper
  46. additivity: false
  47. level: ${sys:log.level.com.jeiker.demo.mapper}
  48. AppenderRef:
  49. - ref: CONSOLE
  50. - ref: ROLLING_FILE

发表评论

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

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

相关阅读

    相关 log4j2日志配置

     log4j2相对于log4j 1.x有了脱胎换骨的变化,其官网宣称的优势有多线程下10几倍于log4j 1.x和logback的高吞吐量、可配置的审计型日志、基于插件架构的各