我有一个带有专门操作的 java 包。专门用于它们很少使用的意义上,我不想将它们与普通日志记录混合在一起。
我知道添加 logging.file=myapplication.log
将日志记录重定向到这个文件,但有没有办法只指定从特定包到另一个文件的日志记录?赞 logging.file.my.package=special.log
?
最佳答案
Spring Boot 提供的日志配置是不可能的。但是,您可以依靠日志框架提供的配置。默认情况下,这是 Logback ,可以配置为记录到多个日志文件。
为此,您需要添加 logback.xml 文件到您的类路径并配置多个 appenders .例如:
<appender name="FILE1" class="ch.qos.logback.core.FileAppender">
<file>log1.log</file>
<append>true</append>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE2" class="ch.qos.logback.core.FileAppender">
<file>log2.log</file>
<append>true</append>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
现在您可以定义一个单独的记录器,以防您想记录到不同的文件。确保添加
additivity="false"
否则,日志消息仍将打印在两个日志文件中:<logger name="com.example.apps.special-package" level="INFO" additivity="false">
<appender-ref ref="FILE2" />
</logger>
<root level="INFO">
<appender-ref ref="FILE1" />
</root>
在这种情况下,所有日志都将写入
log1.log
( FILE1
appender),而来自包 com.example.apps.special-package
的日志将写入 log2.log
( FILE2
附加程序)。
关于spring - Spring boot 中特定包的自定义日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48983835/