Вопрос

У меня есть несколько jar-файлов, которые будут распространяться среди клиентов, использующих log4j для ведения журнала. Мой вопрос должен ли я включить конфигурацию log4j.xml в файл jar или сделать так, чтобы клиент предоставил ее, если он хочет войти?

Мне кажется, что файл конфигурации log4j.xml вне клиентских jar-файлов должен быть оставлен, поскольку все jar-файлы apache поставляются с log4j, но без log4j.xml.

Это было полезно?

Решение

Да, оставь это. Это очень неприятно, когда ваш файл конфигурации log4j игнорируется, потому что одна из 60 сторонних библиотек вашего приложения содержит свою собственную.

Другие советы

Хорошая вещь о log4j в вашем случае состоит в том, что вашей банке действительно не нужно беспокоиться об этом. Основной вариант использования log4j:

<Ол>
  • Получить объект регистратора для текущего класса
  • Вызовите один из методов этого регистратора, например, debug (" some message ");
  • Если банки, которые вы отправляете, будут использоваться большим приложением, то в идеале ваш код будет выполнять только два шага, перечисленных выше. Таким образом, ваш код будет просто получать объекты регистратора из уже настроенного экземпляра log4j в клиентском приложении. Ваш производственный код будет отделен от необходимости знать, как настроить log4j.

    Любая запись в журнал, которую вы должны увидеть для разработки jar-файлов, может быть выполнена путем настройки экземпляра log4j в методах setUp () модульного теста или чего-то подобного, что не будет связано с производственным кодом, отправляемым клиенту.

    Я бы добавил конфигурацию log4j по умолчанию, которая, как вы ожидаете, будет полезна для ваших клиентов в документации. Таким образом, заинтересованные люди могут увидеть, какие у вас есть варианты ведения журнала (обычно в определенных классах есть более интересные сообщения журнала, с точки зрения пользователя). Я нахожу это раздражающим, когда у меня есть сторонняя библиотека, использующая log4j, и у нее нет документации, и на моем экране появляются сообщения журнала, и я должен попытаться выяснить, как включить или отключить определенные сообщения журнала.

    Если вы используете log4j в своем приложении, вы включаете его в свой проект. Если это не так, то зачем вам это туда вставлять? Что, если клиент A хочет версию 1.2 log4j, а клиент B хочет версию 1.3 log4j.

    Пусть они решают, что им нужно для своих проектов, и беспокоятся о том, что вам нужно для ваших проектов.

    Я добавил бы конфигурационный xml и загрузил бы его с инструкцией для пользователя, показывающей другую конфигурацию и опции. Это облегчит для них или для поддержки включение журналирования дополнений.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top