【问题标题】:SpringBoot logging configuration based on logging level基于日志级别的 Spring Boot 日志配置
【发布时间】:2017-04-18 05:07:29
【问题描述】:

是否可以在 SpringBoot 的 appliaction.properties 中为不同的日志级别指定不同的日志配置?
例如,将信息记录到文件但仅调试到控制台并为它们指定不同的格式。
我搜索了SpringBoot docs,但找不到答案。

【问题讨论】:

    标签: spring logging spring-boot slf4j


    【解决方案1】:

    您可以尝试使用 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>
    

    【讨论】:

      【解决方案2】:

      在您的 application.yml 中添加以下配置

      logging:
        level:
          root: INFO
          com:
            somepackage: DEBUG
            someotherpackage: TRACE
      

      在这里,您已将默认日志记录设置为INFO(根记录器),对于包com.somepackage,日志记录级别为DEBUGcom.someotherpackage 的日志记录级别为TRACE

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-16
        • 2016-07-17
        相关资源
        最近更新 更多