Spring起動Webアプリケーションでは、application.propertiesに次のログプロパティがあります。Spring起動ログプロパティとLog4J 2プロパティ
logging.level.guru.springframework.controllers=DEBUG
logging.level.org.springframework.web=DEBUG
logging.file=logs/spring-boot-logging.log
状況は正常です - 内部のSpringブートとアプリケーションの両方のDEBUGメッセージはlogs/spring-boot-logging.logに記録されます。しかし、ログレベルが異なるlog4j2-spring.xmlを追加しても、application.propertiesのレベルが選択されます。
マイlog4j2-spring.xmlはこれです:これらの設定で
<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="60">
<Properties>
<Property name="log-path">applogs</Property>
</Properties>
<Appenders>
<Console name="Console-Appender" target="SYSTEM_OUT">
<PatternLayout>
<pattern>
[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
</pattern>>
</PatternLayout>
</Console>
<File name="File-Appender" fileName="${log-path}/app_log.log" >
<PatternLayout>
<pattern>
[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
</pattern>
</PatternLayout>
</File>
</Appenders>
<Loggers>
<Logger name="org.springframework.web" level="info">
<AppenderRef ref="File-Appender"/>
</Logger>
<Logger name="guru.springframework.controllers" level="info">
<AppenderRef ref="File-Appender"/>
</Logger>
<Root level="info">
<AppenderRef ref="Console-Appender"/>
</Root>
</Loggers>
</Configuration>
、デバッグ(application.propertiesに定義された)メッセージは、(log4j2-spring.xmlで定義)applogs/app_log.logに送られ、
アプリケーションプロパティでlogging.level。*をコメントアウトすると、log4j2-spring.xmlのログレベル(info)が使用されます。私は、デフォルトでは、application.propertiesのプロパティがlog4j2-spring.xmlよりも優先されると仮定します。 application.propertiesの代わりにlog4j2-spring.xmlプロパティを使うようにSpring Bootを設定する方法はありますか?また、application.propertiesの方が優先順位が高い場合、なぜlog4j2-spring.xmlのファイルアペンダがlogging.fileの代わりに使用されているのですか?あなたは、この春のブートプロパティを経由して、それを定義した場合
を追加** logging.config =クラスパス:log4j2-spring.xml **機能していません。最小の例はhttps://github.com/ximanta/springbootwebapp-part2 – user2693135
ファイルlog4j2-spring.xmlがリポジトリにありません。 – luboskrnac
@luboskmac申し訳ありません!ただそれを追加しました。 – user2693135