Я хотел бы предоставить файлы jar со своей собственной конфигурацией регистрации logback. Общим способом настройки журнала является файл logback.xml по умолчанию, который библиотека журнала читает из корня пути к классу (работает для серверов приложений или нет).файлы конфигурации logback на jar
Вы можете написать include еще один файл из основного файла конфигурации журнала (не пробовал), но я не знаю, какие банки будут в пути к классам и какие из них требуют конфигурации журнала.
Плюс, банки могут использоваться в приложениях командной строки или серверов приложений (совместно используемая библиотека или нет).
Я подумал, что, возможно, я мог бы получить путь к файлу в банке и проверить, есть ли там файл конфигурации, и попытаться прочитать конфигурацию программно и загрузить его с помощью JoranConfigurator.
// This is the way I find to get the path to the jar
String path = ClassThatWantsALogger.class.getProtectionDomain().getCodeSource()
.getLocation().getPath();
String decodedPath = URLDecoder.decode(path, "UTF-8");// the path to the jar
Но этот подход может потерпеть неудачу, так как зависит от ограничений безопасности, может быть, сбоев в Linux или на серверах приложений. Это трудный подход к проблеме, которая, вероятно, имеет лучшее решение.
Вы представляете себе, как управлять этими банками может иметь свой собственный конфигурационный файл журнала, который работает в любой среде?
В организации, где я работаю, я должен предоставить библиотеки другим командам с общей функциональностью и коннекторами для других приложений. Я с интересом решаю, где и что он собирается записывать в эти библиотеки. Если бы мне пришлось попросить эти команды, чтобы они добавили определенную конфигурацию в свой конфигурационный файл журнала, они могли совершить ошибку и забыли или неправильно определили, что я прошу. Кроме того, если я хочу изменить конфигурацию журнала этих библиотек, мне нужно обратиться к этим командам с просьбой изменить файл конфигурации журнала. Кроме того, у них обычно нет доступа к изменению этого в производственной среде. –
Предоставление библиотек в порядке, это то, что я тоже делаю. Как это может вас беспокоить, если вы кодируете общие библиотеки, где вы не знаете целевую среду? Прошу простить вас, но концепция вашей компании просто немыслима. Это не значит, что предназначена настройка протоколирования. Все, что вы можете сделать, это предоставить файл conf в 'com/company/package/logback.xml' и включить этот файл в целевую среду с помощью' '. –