Ответ 1
Смотрите этот учебник по jul:
java -Djava.util.logging.config.file = myLoggingConfigFilePath
Но я бы рекомендовал пойти Logback
Я пытаюсь использовать 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 напрямую)
Смотрите этот учебник по jul:
java -Djava.util.logging.config.file = myLoggingConfigFilePath
Но я бы рекомендовал пойти Logback
В слое slf4j нет конфигурации. Это просто API, который бэкэнд должен обеспечить реализацию (более или менее).
Чтобы использовать java.util.logging в качестве бэкэнд slf4j, вы должны иметь slf4j-jdk14-mumle.jar из дистрибутива slf4j в вашем пути к классам и выполнить волшебство, указанное в javadoc, чтобы включить его. Если нет, у вас будет ошибка времени выполнения, говорящая, что реализация slf4j не активна.
Я удалил 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>
Это конфигурация для ведения журнала на консоль, но в руководстве по протоколированию больше примеров.
По сути, вам просто нужно иметь 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 и т.д.
Вы не настроите SLF4J - вам нужно связать и настроить поставщика. Я использую Logback, который был специально создан для SLF4J. Вы также можете использовать log4j. См. Соответствующую запись в руководстве: http://www.slf4j.org/manual.html#binding
Иногда кажется, что вы можете отредактировать файл с таким именем, как это
tomcat-directory/webapps/your_app_name/WEB-INF/classes/log4j.properties
(стандартный файл конфигурации log4j). Все равно у меня сработало.