Подтвердить что ты не робот

Slf4j + java.util.logging: как настроить?

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

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

а именно:

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

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

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

4b9b3361

Ответ 2

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

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

Ответ 3

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

<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>

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

Ответ 4

По сути, вам просто нужно иметь slf4j-api.1.7.7.jar и slf4j-jdk14.1.7.7.jar на вашем пути к классам. А затем создайте файл logging.properties для своего приложения и установите системные свойства -Djava.util.logging.config.file = {path_to_logging.properties}

посмотрите этот учебник, в котором приведены примеры того, как настроить slf4j с различными средами ведения журналов, такими как java logger, log4j, logback и т.д.

Ответ 5

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

Ответ 6

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

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

(стандартный файл конфигурации log4j). Все равно у меня сработало.