【发布时间】:2017-04-18 05:07:29
【问题描述】:
是否可以在 SpringBoot 的 appliaction.properties 中为不同的日志级别指定不同的日志配置?
例如,将信息记录到文件但仅调试到控制台并为它们指定不同的格式。
我搜索了SpringBoot docs,但找不到答案。
【问题讨论】:
标签: spring logging spring-boot slf4j
是否可以在 SpringBoot 的 appliaction.properties 中为不同的日志级别指定不同的日志配置?
例如,将信息记录到文件但仅调试到控制台并为它们指定不同的格式。
我搜索了SpringBoot docs,但找不到答案。
【问题讨论】:
标签: spring logging spring-boot slf4j
您可以尝试使用 log4j2 记录器并在其配置文件中指定多个记录器元素。如果您在 spring 中设置了 log4j2 依赖项,它应该在文件 log4j2-spring.xml 中获取配置。看看他们的介绍文档here,但我相信 log4j2 配置文件中的类似内容就足够了:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="ConsoleAppender" target="SYSTEM_OUT">
<PatternLayout pattern="%d [%t] %-5level %logger{36} - %msg%n%throwable"/>
</Console>
<File name="FileAppender" fileName="debug.log">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
</File>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="ConsoleAppender"/>
</Root>
<Root level="DEBUG">
<AppenderRef ref="FileAppender"/>
</Root>
</Loggers>
</Configuration>
【讨论】:
在您的 application.yml 中添加以下配置
logging:
level:
root: INFO
com:
somepackage: DEBUG
someotherpackage: TRACE
在这里,您已将默认日志记录设置为INFO(根记录器),对于包com.somepackage,日志记录级别为DEBUG,com.someotherpackage 的日志记录级别为TRACE。
【讨论】: