Spring Boot Log4j2配置

灰太狼 2022-06-07 00:19 294阅读 0赞

pom.xml

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter</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. <dependency>
  12. <groupId>org.springframework.boot</groupId>
  13. <artifactId>spring-boot-starter-log4j2</artifactId>
  14. </dependency>

application.properties

指定log4j2配置文件的位置与名称。

  1. logging.config=classpath:log4j2.properties

log4j2.properties

常用配置,控制台输出,按日滚动日志。

rootLogger.appenderRef.rolling.ref.level可以配置日志级别,这里不作演示。

特色:日志按日志级别输出彩色日志。

  1. name=PropertiesConfig
  2. property.filename=logs
  3. appenders=console, rolling
  4. # rootLogger
  5. rootLogger.level=info
  6. rootLogger.appenderRef.stdout.ref=Stdout
  7. rootLogger.appenderRef.rolling.ref=InfoRollingFile
  8. # console
  9. appender.console.type=Console
  10. appender.console.name=Stdout
  11. appender.console.layout.type=PatternLayout
  12. appender.console.layout.pattern=%highlight{%d{MM-dd HH:mm:ss.SSS} [%5p] [%40.40c{
  13. 1.}:%3L] - %m%n}{FATAL=white, ERROR=red, WARN=blue, INFO=Green, DEBUG=Yellow, TRACE=blue}
  14. # rolling file
  15. appender.rolling.type=RollingFile
  16. appender.rolling.name=InfoRollingFile
  17. appender.rolling.fileName=./logs/rolling.log
  18. appender.rolling.filePattern=./logs/rolling_%d{yyyy-MM-dd}_%i.log
  19. appender.rolling.layout.type=PatternLayout
  20. appender.rolling.layout.pattern=%highlight{%d{MM-dd HH:mm:ss.SSS} [%5p] [%40.40c{
  21. 1.}:%3L] - %m%n}{FATAL=white, ERROR=red, WARN=blue, INFO=Green, DEBUG=Yellow, TRACE=blue}
  22. appender.rolling.policies.type=Policies
  23. appender.rolling.policies.time.type=TimeBasedTriggeringPolicy
  24. appender.rolling.policies.time.interval=1
  25. appender.rolling.policies.time.modulate=true
  26. appender.rolling.policies.size.type=SizeBasedTriggeringPolicy
  27. appender.rolling.policies.size.size=20M
  28. appender.rolling.strategy.type=DefaultRolloverStrategy
  29. appender.rolling.strategy.max=100

这里写图片描述

优化

分别只打印 debug、info、error 日志到对应的log文件中.

  1. name=PropertiesConfig
  2. # 公共变量
  3. # 文件路径
  4. property.filePath=logs
  5. property.filePattern=logs/%d{yyyy-MM-dd}
  6. # 输出格式
  7. property.layoutPattern=%highlight{%d{MM-dd HH:mm:ss.SSS} [%5p] [%40.40c{
  8. 1.}:%3L] - %m%n}{FATAL=white, ERROR=red, WARN=blue, INFO=Green, DEBUG=Yellow, TRACE=blue}
  9. # 记录器
  10. appenders=Console,Debug,Info,Error
  11. # 根记录器,所有记录器的父辈
  12. rootLogger.level=debug
  13. # 级别过滤(过滤日志记录)
  14. # filters = threshold
  15. filter.threshold.type=ThresholdFilter
  16. # 只记录debug级别以上的日志,大小写无关:(ALL<)TRACE<DEBUG<INFO<WARN<ERROR<FATAL(<OFF)
  17. filter.threshold.level=debug
  18. # console
  19. appender.Console.type=Console
  20. appender.Console.name=Stdout
  21. appender.Console.layout.type=PatternLayout
  22. appender.Console.layout.pattern=${layoutPattern}
  23. rootLogger.appenderRef.stdout.ref=Stdout
  24. # debug rolling file
  25. appender.Debug.type=RollingFile
  26. appender.Debug.name=DebugRollingFile
  27. appender.Debug.fileName=${filePath}/debug.log
  28. appender.Debug.filePattern=${filePattern}/debug_%d{yyyy-MM-dd}_%i.log
  29. appender.Debug.layout.type=PatternLayout
  30. appender.Debug.layout.pattern=${layoutPattern}
  31. appender.Debug.policies.type=Policies
  32. appender.Debug.policies.time.type=TimeBasedTriggeringPolicy
  33. appender.Debug.policies.time.interval=1
  34. appender.Debug.policies.time.modulate=true
  35. appender.Debug.policies.size.type=SizeBasedTriggeringPolicy
  36. appender.Debug.policies.size.size=20M
  37. appender.Debug.strategy.type=DefaultRolloverStrategy
  38. appender.Debug.strategy.max=100
  39. # 过滤debug以上信息
  40. appender.Debug.filter.threshold.type=ThresholdFilter
  41. appender.Debug.filter.threshold.level=INFO
  42. appender.Debug.filter.threshold.onMatch=DENY
  43. appender.Debug.filter.threshold.onMisMatch=NEUTRAL
  44. # InfoRollingFile 日志级别
  45. rootLogger.appenderRef.Debug.level=debug
  46. rootLogger.appenderRef.Debug.ref=DebugRollingFile
  47. # info rolling file
  48. appender.Info.type=RollingFile
  49. appender.Info.name=InfoRollingFile
  50. appender.Info.fileName=${filePath}/info.log
  51. appender.Info.filePattern=${filePattern}/info_%d{yyyy-MM-dd}_%i.log
  52. appender.Info.layout.type=PatternLayout
  53. appender.Info.layout.pattern=${layoutPattern}
  54. appender.Info.policies.type=Policies
  55. appender.Info.policies.time.type=TimeBasedTriggeringPolicy
  56. appender.Info.policies.time.interval=1
  57. appender.Info.policies.time.modulate=true
  58. appender.Info.policies.size.type=SizeBasedTriggeringPolicy
  59. appender.Info.policies.size.size=20M
  60. appender.Info.strategy.type=DefaultRolloverStrategy
  61. appender.Info.strategy.max=100
  62. # 过滤 info 以上信息,只输出 info 级别日志
  63. appender.Info.filter.threshold.type=ThresholdFilter
  64. appender.Info.filter.threshold.level=warn
  65. appender.Info.filter.threshold.onMatch=DENY
  66. appender.Info.filter.threshold.onMisMatch=NEUTRAL
  67. # InfoRollingFile 日志级别
  68. rootLogger.appenderRef.Info.level=info
  69. rootLogger.appenderRef.Info.ref=InfoRollingFile
  70. # error rolling file
  71. appender.Error.type=RollingFile
  72. appender.Error.name=ErrorRollingFile
  73. appender.Error.fileName=${filePath}/error.log
  74. appender.Error.filePattern=${filePattern}/error_%d{yyyy-MM-dd}_%i.log
  75. appender.Error.layout.type=PatternLayout
  76. appender.Error.layout.pattern=${layoutPattern}
  77. appender.Error.policies.type=Policies
  78. appender.Error.policies.time.type=TimeBasedTriggeringPolicy
  79. appender.Error.policies.time.interval=1
  80. appender.Error.policies.time.modulate=true
  81. appender.Error.policies.size.type=SizeBasedTriggeringPolicy
  82. appender.Error.policies.size.size=20M
  83. appender.Error.strategy.type=DefaultRolloverStrategy
  84. appender.Error.strategy.max=100
  85. # 过滤 error 以上信息,只输出 error 级别日志
  86. appender.Error.filter.threshold.type=ThresholdFilter
  87. appender.Error.filter.threshold.level=fatal
  88. appender.Error.filter.threshold.onMatch=DENY
  89. appender.Error.filter.threshold.onMisMatch=NEUTRAL
  90. # ErrorRollingFile 日志级别
  91. rootLogger.appenderRef.Error.level=error
  92. rootLogger.appenderRef.Error.ref=ErrorRollingFile

如图:

这里写图片描述

发表评论

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

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

相关阅读

    相关 Spring Boot 整合Log4j2

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