Простое приложение только с основным классом не видит logback.xml

Структура моего проекта:

введите описание изображения здесь

Как вы можете видеть, я пытался поместить 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

в консоль.

Что я не прав?

PS

Я пытался напечатать:

    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

1 ответ

Решение

Вы должны поместить его на верхний уровень вашего classpath. Стандартное местоположение для проекта Maven/ Gradle будет в src/main/resources, Gradle/maven будет включать этот каталог ресурсов в ваш путь к классам (и большинство IDE тоже это поймут).

Другие вопросы по тегам