Log4J2を設定したところ、以下のエラーが出ました。
2021-09-29 10:44:38,966 main ERROR Unable to locate appender "RollingFile" for logger config "root"
設定はxmlで行っていて以下の通り。
<?xml version="1.0" encoding="UTF-8"?> <Configuration> <Appenders> <RollingFile name="RollingFile" fileName="${sys:user.home}/.samurai.log" filePattern="${sys:user.home}/.samurai-%d{MM-dd-yyyy}-%i.log.gz"> <PatternLayout> <Pattern>%d %p %c{1.} [%t] %m%n</Pattern> </PatternLayout> <Policies> <TimeBasedTriggeringPolicy /> <SizeBasedTriggeringPolicy size="20 MB"/> </Policies> <DefaultRolloverStrategy max="3"/> </RollingFile> </Appenders> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Console> </Appenders> <Loggers> <Root level="info"> <AppenderRef ref="Console"/> <AppenderRef ref="RollingFile"/> </Root> </Loggers> </Configuration>
間違い無くRollingFileというAppenderは設定してあるし、設定ファイルのパースにあたってエラーも出ていないのにおかしいなー?と思えば、Appenders要素が重複していまいた。恐らく後に登場するConsoleのAppenderの設定のみが生きてしまっているようです。
</Appenders> <Appenders>
を削除して、以下のようにしたら期待通り動作しました。
<?xml version="1.0" encoding="UTF-8"?> <Configuration> <Appenders> <RollingFile name="RollingFile" fileName="${sys:user.home}/.samurai.log" filePattern="${sys:user.home}/.samurai-%d{MM-dd-yyyy}-%i.log.gz"> <PatternLayout> <Pattern>%d %p %c{1.} [%t] %m%n</Pattern> </PatternLayout> <Policies> <TimeBasedTriggeringPolicy /> <SizeBasedTriggeringPolicy size="20 MB"/> </Policies> <DefaultRolloverStrategy max="3"/> </RollingFile> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Console> </Appenders> <Loggers> <Root level="info"> <AppenderRef ref="Console"/> <AppenderRef ref="RollingFile"/> </Root> </Loggers> </Configuration>