【问题标题】:simple application with only main class doesn't see logback.xml只有主类的简单应用程序看不到 logback.xml
【发布时间】:2018-03-20 20:16:00
【问题描述】:

我的项目结构:

如你所见,我试图将 logback.xml 放在任何地方。

我想为根记录器设置信息日志级别。

logback.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <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>

    <!-- Send logs to both console and file audit -->
    <logger name="kafka_test" level="info">
        <appender-ref ref="STDOUT" />
    </logger>


</configuration>

我有以下代码:

public class Consumer {
    private static final String name = "consumer_1";

    private static Logger logger = LoggerFactory.getLogger(Consumer.class);

    public static void main(String[] args) throws InterruptedException {
        logger.debug("Consumer {} started", name);
        ...

然后打印出来

17:51:45.096 [main] DEBUG kafka_test.Consumer - Consumer consumer_1 started

进入控制台。

我做错了什么?

附言

我尝试打印:

    System.out.println(Consumer.class.getClassLoader().getResource("kafka_test/Consumer.class"));

打印出来:

file:/D:/work/kafka_samples/out/production/classes/kafka_test/Consumer.class

我把logback.xml放进去

D:\work\kafka_samples\out\production\classes\kafka_test

但是还是不行

解决方案:

我已将logback.xml 放入

D:\work\kafka_samples\out\production\classes

【问题讨论】:

  • 将 logback.xml 放在运行时类路径中。类所在的包不是运行时类路径。
  • @DwB 你能澄清一下“运行时类路径”是什么意思吗?

标签: java logging logback log-level


【解决方案1】:

您需要将它放在类路径的顶层。 maven/gradle 项目的标准位置是src/main/resources。 Gradle/maven 将在您的类路径中包含该资源目录(大多数 IDE 也会理解这一点)。

【讨论】:

  • 你能提供准确的文件夹路径吗?
  • kafka_samples/src/main/resources
猜你喜欢
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 2015-01-02
  • 1970-01-01
  • 2012-03-21
  • 2021-01-02
  • 1970-01-01
相关资源
最近更新 更多