有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用Logback和Lombok

我有一门课看起来是这样的:

@Slf4j
public class MyTestApplication {
    public static void main(String[] argv) { 
        log.info("IN HERE!");
    }
}

在mybuild.gradle中,我有以下依赖项:

dependencies {
  compile group: 'org.projectlombok', name: 'lombok', version: '1.16.20'
  compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.25'
  compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'
  compile group: 'private.company.dep', name: 'redacted', version: '1.0.0'
}

我有一个默认的logback.xml

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
        <Pattern>
            %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
        </Pattern>
    </layout>
</appender>

<logger name="com.mkyong.web" level="debug"
        additivity="false">
    <appender-ref ref="STDOUT" />
</logger>

<root level="error">
    <appender-ref ref="STDOUT" />
</root>

我遇到的问题是,当我构建应用程序时,会出现以下错误:

ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations. Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging. See https://logging.apache.org/log4j/2.x/manual/configuration.html for instructions on how to configure Log4j 2

私有公司依赖项可能依赖于Log4j2。我猜这就是我的错误的来源。如何禁用/覆盖它的Log4j2依赖项,以便在此应用程序中使用Logback


共 (1) 个答案

  1. # 1 楼答案

    您可以将log4j-over-slf4j添加到类路径中,以定义log4j和slf4j之间的桥接:

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>log4j-over-slf4j</artifactId>
        <version>1.7.29</version>
    </dependency>
    

    文档在这里:https://www.slf4j.org/legacy.html#log4j-over-slf4j