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

Как работает slf4j? Создание журнала не создается

У меня ниже код в Java 1.6:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

private static Logger log = LoggerFactory.getLogger(myfile.class);

Теперь я помещаю slf4j-api-1.6.4.jar и slf4j-simple-1.6.4.jar в classpath и компилирует код отлично, но где он регистрирует всю информацию????

У меня есть log.info( "test" ); но не создает никакого файла журнала. Я попытался создать log4j.properties с содержимым ниже:

log4j.appender.stdout=org.apache.log4j.RollingFileAppender
log4j.appender.stdout.File=/var/abc.log
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{dd-MMM-yyyy HH:mm:ss}]%6p %c{1}:%L - %m%n
log4j.appender.stdout.MaxFileSize=50000KB
log4j.appender.stdout.MaxBackupIndex=200

log4j.rootLogger=info, stdout

Но его не работает, я знаю, что файл выше для log4j, но как работает slf4j? Мне нужно создать любой файл свойств, похожий на log4j?? Если да, то где мне нужно его поставить?

Спасибо!

4b9b3361

Ответ 1

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

Вам не нужно создавать какие-либо файлы свойств для SLF4J. Все, что вам нужно сделать, это использовать правильную банку "SLF4J bindings", которая соответствует вашим фреймворкам ведения журнала, чтобы делегировать все вызовы журнала SLF4J API в базовую. На следующем рисунке показана взаимосвязь между SLF4J, "привязками SLF4J" и базовыми фреймворками регистрации

enter image description here

slf4j-simple-1.6.4.jar делегирует все события в System.err, но не делегирует log4j API. Поэтому вместо этого следует использовать slf4j-log4j12-1.6.4.jar.

Вкратце, вы должны использовать следующие банки:

  • slf4j-api-1.6.4.jar
  • slf4j-log4j12-1.6.4.jar
  • log4j-1.2.16.jar

Ссылка

Ответ 2

SLF4J - это просто каротажная абстракция - он не записывает никаких журналов. Используйте Logback - он реализует SLF4J изначально и написан тем же парнем, который написал SLF4J и log4j. SLF4J и Logback - отличная структура - нам нравится, как SLF4J соединяет другие фреймворки (JUL, Commons Logging, log4j) с нашей базой выбора (которая является Logback).

Ответ 3

Я использовал slf4j-api (jar). Я заменил logback-core зависимостей (jar) с помощью logback-classic, после чего он начал регистрироваться.