【问题标题】:How to configure the logging framework in Spring-Boot?如何在 Spring-Boot 中配置日志框架?
【发布时间】:2014-12-11 13:30:59
【问题描述】:

我如何告诉Spring-Boot 使用哪个日志框架? (我想用 log4j2)。

在 1.1.9.RELEASE 中,我的类路径中只有一个 log4j2.xml,并且日志记录工作正常。

现在我升级到 spring-boot-1.2.0.RELEASE,我的记录器不再工作了!也许我必须将日志框架配置为显式使用?

我正在使用org.apache.logging.log4j.LogManager.getRootLogger() 进行日志记录,也许这是错误的?

【问题讨论】:

    标签: java spring log4j spring-boot


    【解决方案1】:

    查看文档:http://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html#howto-configure-log4j-for-logging

    只需更改 POM

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
    

    【讨论】:

    • 嗯,仍然没有帮助。我正在使用org.apache.logging.log4j.LogManager.getRootLogger() 记录器对象。也许这是不合适的?当使用带有 log4j2 的 spring-boot 时,哪个是正确的类,例如 log.info()
    • 你为什么不尝试使用org.slf4j.LoggerFactory.getLogger(Class&lt;?&gt;)?我认为它应该是 spring-boot 的依赖项,slf4j jars
    • 因为我想显式使用 log4j2 来启用异步日志记录。
    • @membersound 我会试试Logger.getLogger("perfLog")
    【解决方案2】:

    应该使用 SFL4J,它是围绕所使用的实际日志记录实现的一个抽象级别。如果您按照上述方式配置 POM,并在 src/main/resources 中包含适当的 log4j 配置,并使用 org.slf4j.Logger 进行日志记录,那么您应该没问题

    【讨论】:

      猜你喜欢
      • 2021-02-19
      • 1970-01-01
      • 2015-06-24
      • 2013-12-28
      • 1970-01-01
      • 2014-07-22
      • 2018-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多