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 楼答案
您可以将log4j-over-slf4j添加到类路径中,以定义log4j和slf4j之间的桥接:
文档在这里:https://www.slf4j.org/legacy.html#log4j-over-slf4j