slf4j + java.util.logging: как настроить? - PullRequest
32 голосов
/ 15 апреля 2011

Я пытаюсь использовать slf4j + java.util.logging. Я знаю, как настроить исходный код Java для этого через logger = LoggerFactory.getLogger(...) и logger.warn('...') или что-то еще.

Но где документация по настройке конфигурации в slf4j? Я очень запутался ... У меня есть руководство по log4j, и я знаком с основами адаптеров регистрации, но я просто не уверен, как заставить это работать с slf4j + java.util.logging.

, а именно:

  • какой файл .properties и / или JVM -D аргумент командной строки мне нужно указать, чтобы указать его в моем файле конфигурации?

  • где находится документация для файла конфигурации для java.util.logging?

  • вызывает ли использование slf4j какие-либо изменения в моем файле конфигурации? (то есть что-то, что я должен был бы объявить по-другому, а не просто использовать java.util.logging или log4j напрямую)

Ответы [ 6 ]

13 голосов
/ 15 апреля 2011

См. этот учебник по июлю :

java -Djava.util.logging.config.file = myLoggingConfigFilePath

Но я бы порекомендовалперейти на Logback

11 голосов
/ 15 апреля 2011

Нет конфигурации в слое slf4j. Это просто API, для которого серверная часть должна обеспечивать реализацию (более или менее).

Чтобы использовать java.util.logging в качестве бэкэнда slf4j, вы должны иметь slf4j-jdk14-mumle.jar из дистрибутива slf4j на вашем пути к классам и выполнить магию, указанную в javadoc, чтобы включить его. Если нет, у вас будет ошибка во время выполнения, говорящая о том, что реализация slf4j не активна.

2 голосов
/ 09 июля 2014

По сути, вам просто нужно иметь slf4j-api.1.7.7.jar и slf4j-jdk14.1.7.7.jar на вашем пути к классам.А затем создайте файл logging.properties для своего приложения и установите свойства системыпримеры того, как сконфигурировать slf4j с различными средами ведения журналов, такими как java logger, log4j, logback и т. д.

2 голосов
/ 15 апреля 2011

Я отказался от ведения журнала Java с той же целью и пошел на вход в систему. На самом деле ничего не нужно делать для настройки входа в систему с SLF4J. Просто поместите logback.xml в корень jar с конфигурацией logback и поместите logback-XX.jar в classpath.

<configuration>

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!-- encoders are assigned the type
         ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <root level="warn">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>

Это конфигурация для входа в консоль, но в руководстве по возврату есть больше примеров.

2 голосов
/ 15 апреля 2011

Вы не настраиваете SLF4J - вам нужно связать и настроить провайдера.Я использую Logback, который был построен специально для SLF4J.Вы также можете использовать log4j.См. Соответствующую запись в руководстве: http://www.slf4j.org/manual.html#binding

0 голосов
/ 20 сентября 2013

Иногда кажется, что вы можете отредактировать ваш файл, как это

tomcat-directory/webapps/your_app_name/WEB-INF/classes/log4j.properties

(стандартный файл конфигурации log4j)

...