原文: https://howtodoinjava.com/log4j2/multiple-appenders/

给定log4j2.xml配置多个附加器的参考,例如控制台附加器和文件附加器。 这还将配置动态日志根路径

Log4j 多个附加器配置

log4j 配置示例受到打击。 它执行以下操作:

  1. 使用将在其中创建日志文件的动态日志根路径。 将环境变量作为-DAPP_LOG_ROOT=c:/temp进行配置。
  2. 演示在配置文件中定义的属性常量的用法,例如,以下文件中的LOG_PATTERN
  3. 它使用LevelRangeFilter将不同的日志级别语句记录在不同的文件中,即将调试日志记录在一个文件中并将错误日志记录在单独的文件中。
  4. 所有日志也将显示在控制台中。
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Configuration status="WARN" monitorInterval="30">
  3. <Properties>
  4. <Property name="LOG_PATTERN">%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %p %m%n</Property>
  5. </Properties>
  6. <Appenders>
  7. <Console name="Console" target="SYSTEM_OUT" follow="true">
  8. <PatternLayout pattern="${LOG_PATTERN}"/>
  9. </Console>
  10. <RollingFile name="debugLog" fileName="${sys:APP_LOG_ROOT}/application-debug.log"
  11. filePattern="${sys:APP_LOG_ROOT}/application-debug-%d{yyyy-MM-dd}-%i.log">
  12. <LevelRangeFilter minLevel="DEBUG" maxLevel="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
  13. <PatternLayout pattern="${LOG_PATTERN}"/>
  14. <Policies>
  15. <SizeBasedTriggeringPolicy size="19500KB" />
  16. </Policies>
  17. <DefaultRolloverStrategy max="10"/>
  18. </RollingFile>
  19. <RollingFile name="infoLog" fileName="${sys:APP_LOG_ROOT}/application-info.log"
  20. filePattern="${sys:APP_LOG_ROOT}/application-info-%d{yyyy-MM-dd}-%i.log" >
  21. <LevelRangeFilter minLevel="INFO" maxLevel="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
  22. <PatternLayout pattern="${LOG_PATTERN}"/>
  23. <Policies>
  24. <SizeBasedTriggeringPolicy size="19500KB" />
  25. </Policies>
  26. <DefaultRolloverStrategy max="10"/>
  27. </RollingFile>
  28. <RollingFile name="errorLog" fileName="${sys:APP_LOG_ROOT}/application-error.log"
  29. filePattern="${sys:APP_LOG_ROOT}/application-error-%d{yyyy-MM-dd}-%i.log" >
  30. <LevelRangeFilter minLevel="ERROR" maxLevel="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
  31. <PatternLayout pattern="${LOG_PATTERN}"/>
  32. <Policies>
  33. <SizeBasedTriggeringPolicy size="19500KB" />
  34. </Policies>
  35. <DefaultRolloverStrategy max="10"/>
  36. </RollingFile>
  37. <RollingFile name="springLog" fileName="${sys:APP_LOG_ROOT}/spring.log"
  38. filePattern="${sys:APP_LOG_ROOT}/spring-%d{yyyy-MM-dd}-%i.log" >
  39. <PatternLayout pattern="${LOG_PATTERN}"/>
  40. <Policies>
  41. <SizeBasedTriggeringPolicy size="19500KB" />
  42. </Policies>
  43. <DefaultRolloverStrategy max="1"/>
  44. </RollingFile>
  45. <RollingFile name="aopLog" fileName="${sys:APP_LOG_ROOT}/application-aop.log"
  46. filePattern="${sys:APP_LOG_ROOT}/application-aop-%d{yyyy-MM-dd}-%i.log" >
  47. <PatternLayout pattern="${LOG_PATTERN}"/>
  48. <Policies>
  49. <SizeBasedTriggeringPolicy size="19500KB" />
  50. </Policies>
  51. <DefaultRolloverStrategy max="1"/>
  52. </RollingFile>
  53. </Appenders>
  54. <Loggers>
  55. <Logger name="com.howtodoinjava.app.aop" additivity="false">
  56. <AppenderRef ref="aopLog" />
  57. <AppenderRef ref="Console" />
  58. </Logger>
  59. <Logger name="com.howtodoinjava.app" additivity="false">
  60. <AppenderRef ref="debugLog" />
  61. <AppenderRef ref="infoLog" />
  62. <AppenderRef ref="errorLog" />
  63. <AppenderRef ref="Console" />
  64. </Logger>
  65. <Logger name="org.springframework" additivity="false">
  66. <AppenderRef ref="springLog" />
  67. <AppenderRef ref="Console"/>
  68. </Logger>
  69. <Root level="all">
  70. <AppenderRef ref="Console"/>
  71. </Root>
  72. </Loggers>
  73. </Configuration>

将我的问题放在评论部分。

学习愉快!