Как программно получить путь/имя файла конфигурации LogBack?

Я использую LogBack с Slf4j.

При запуске программы LogBack ищет файл конфигурации из разных мест и, если ничего не находит, автоматически настраивается с помощью BasicConfigurator.

http://logback.qos.ch/manual/configuration.html

При запуске программы мне нужно распечатать используемое имя файла конфигурации LogBack.

Как я могу программно получить имя/путь загруженного файла конфигурации LogBack xml или некоторую информацию, если LogBack не нашел никакого файла конфигурации и настроил себя автоматически?


person user4955663    schedule 16.03.2016    source источник


Ответы (1)


Достаточно ли установить debug=true для файлов logback.xml? Если нет, то следующее работает, по крайней мере, с версией logback 1.1.5, но создаст прямую зависимость от logback:

        LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
    System.out
            .println(ConfigurationWatchListUtil.getConfigurationWatchList(context).getCopyOfFileWatchList().get(0));
person Teemu Ilmonen    schedule 16.03.2016
comment
Спасибо! Это было именно то, что я искал. Кажется, что список пуст, когда нет доступного файла конфигурации (=самостоятельная настройка). Знаете ли вы, в каких случаях в списке наблюдения более 1 файла и что это за другие файлы? - person user4955663; 16.03.2016
comment
Глядя на код, кажется, что это произойдет, если вы включите другие файлы, такие как <include file="logback-included.xml"/> - person Teemu Ilmonen; 17.03.2016