💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# Log4j2 多个附加器示例 > 原文: [https://howtodoinjava.com/log4j2/multiple-appenders/](https://howtodoinjava.com/log4j2/multiple-appenders/) 给定`log4j2.xml`是**配置多个附加器**的参考,例如控制台附加器和文件附加器。 这还将配置**动态日志根路径**。 ## Log4j 多个附加器配置 log4j 配置示例受到打击。 它执行以下操作: 1. 使用将在其中创建日志文件的动态日志根路径。 将环境变量作为`-DAPP_LOG_ROOT=c:/temp`进行配置。 2. 演示在配置文件中定义的属性常量的用法,例如,以下文件中的`LOG_PATTERN`。 3. 它使用`LevelRangeFilter`将不同的日志级别语句记录在不同的文件中,即将调试日志记录在一个文件中并将错误日志记录在单独的文件中。 4. 所有日志也将显示在控制台中。 ```java <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN" monitorInterval="30"> <Properties> <Property name="LOG_PATTERN">%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %p %m%n</Property> </Properties> <Appenders> <Console name="Console" target="SYSTEM_OUT" follow="true"> <PatternLayout pattern="${LOG_PATTERN}"/> </Console> <RollingFile name="debugLog" fileName="${sys:APP_LOG_ROOT}/application-debug.log" filePattern="${sys:APP_LOG_ROOT}/application-debug-%d{yyyy-MM-dd}-%i.log"> <LevelRangeFilter minLevel="DEBUG" maxLevel="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="${LOG_PATTERN}"/> <Policies> <SizeBasedTriggeringPolicy size="19500KB" /> </Policies> <DefaultRolloverStrategy max="10"/> </RollingFile> <RollingFile name="infoLog" fileName="${sys:APP_LOG_ROOT}/application-info.log" filePattern="${sys:APP_LOG_ROOT}/application-info-%d{yyyy-MM-dd}-%i.log" > <LevelRangeFilter minLevel="INFO" maxLevel="INFO" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="${LOG_PATTERN}"/> <Policies> <SizeBasedTriggeringPolicy size="19500KB" /> </Policies> <DefaultRolloverStrategy max="10"/> </RollingFile> <RollingFile name="errorLog" fileName="${sys:APP_LOG_ROOT}/application-error.log" filePattern="${sys:APP_LOG_ROOT}/application-error-%d{yyyy-MM-dd}-%i.log" > <LevelRangeFilter minLevel="ERROR" maxLevel="ERROR" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="${LOG_PATTERN}"/> <Policies> <SizeBasedTriggeringPolicy size="19500KB" /> </Policies> <DefaultRolloverStrategy max="10"/> </RollingFile> <RollingFile name="springLog" fileName="${sys:APP_LOG_ROOT}/spring.log" filePattern="${sys:APP_LOG_ROOT}/spring-%d{yyyy-MM-dd}-%i.log" > <PatternLayout pattern="${LOG_PATTERN}"/> <Policies> <SizeBasedTriggeringPolicy size="19500KB" /> </Policies> <DefaultRolloverStrategy max="1"/> </RollingFile> <RollingFile name="aopLog" fileName="${sys:APP_LOG_ROOT}/application-aop.log" filePattern="${sys:APP_LOG_ROOT}/application-aop-%d{yyyy-MM-dd}-%i.log" > <PatternLayout pattern="${LOG_PATTERN}"/> <Policies> <SizeBasedTriggeringPolicy size="19500KB" /> </Policies> <DefaultRolloverStrategy max="1"/> </RollingFile> </Appenders> <Loggers> <Logger name="com.howtodoinjava.app.aop" additivity="false"> <AppenderRef ref="aopLog" /> <AppenderRef ref="Console" /> </Logger> <Logger name="com.howtodoinjava.app" additivity="false"> <AppenderRef ref="debugLog" /> <AppenderRef ref="infoLog" /> <AppenderRef ref="errorLog" /> <AppenderRef ref="Console" /> </Logger> <Logger name="org.springframework" additivity="false"> <AppenderRef ref="springLog" /> <AppenderRef ref="Console"/> </Logger> <Root level="all"> <AppenderRef ref="Console"/> </Root> </Loggers> </Configuration> ``` 将我的问题放在评论部分。 学习愉快!