2012-05-08 3 views
2

Я хотел бы предоставить файлы 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 или на серверах приложений. Это трудный подход к проблеме, которая, вероятно, имеет лучшее решение.

Вы представляете себе, как управлять этими банками может иметь свой собственный конфигурационный файл журнала, который работает в любой среде?

ответ

2

Я буду cite myself ответить на ваш вопрос: Конфигурация протоколирования является проблемой (разделение проблем) клиентского приложения. Это его решение сделать, где и как и что будет регистрироваться. Вы не должны накладывать на нее что-либо в нашей библиотеке.

+3

В организации, где я работаю, я должен предоставить библиотеки другим командам с общей функциональностью и коннекторами для других приложений. Я с интересом решаю, где и что он собирается записывать в эти библиотеки. Если бы мне пришлось попросить эти команды, чтобы они добавили определенную конфигурацию в свой конфигурационный файл журнала, они могли совершить ошибку и забыли или неправильно определили, что я прошу. Кроме того, если я хочу изменить конфигурацию журнала этих библиотек, мне нужно обратиться к этим командам с просьбой изменить файл конфигурации журнала. Кроме того, у них обычно нет доступа к изменению этого в производственной среде. –

+3

Предоставление библиотек в порядке, это то, что я тоже делаю. Как это может вас беспокоить, если вы кодируете общие библиотеки, где вы не знаете целевую среду? Прошу простить вас, но концепция вашей компании просто немыслима. Это не значит, что предназначена настройка протоколирования. Все, что вы можете сделать, это предоставить файл conf в 'com/company/package/logback.xml' и включить этот файл в целевую среду с помощью' '. –

Смежные вопросы