Как сделать логгер для System.out

Мне интересно, как получить org.slf4j.Logger для System.out. Я знаю, что это нехорошо, но мне это нужно для тестирования.

Большое спасибо.


person Anton K.    schedule 22.12.2011    source источник
comment
См. также stackoverflow.com/a/5903253/127971 => используйте slf4j + logback и два разных файла конфигурации logback; один для теста, один для основного   -  person michael    schedule 15.03.2014


Ответы (4)


Можно использовать slf4j-simple и заставить его писать в стандартный вывод, установив системное свойство при запуске программы:

System.setProperty("org.slf4j.simpleLogger.logFile", "System.out");

Дополнительные сведения см. на странице http://www.slf4j.org/api/org/slf4j/impl/SimpleLogger.html

person aditsu quit because SE is EVIL    schedule 10.10.2015

Поместите simplelogger.properties в свой путь к классам и поместите в него эту строку:

org.slf4j.simpleLogger.logFile=System.out

Это приведет к тому, что SLF4J Simple Logger будет регистрировать стандартный вывод вместо стандартной ошибки.

person Sam    schedule 07.02.2016
comment
Кроме того, это не обязательно должно быть simplerlogger.properties, это сработало, когда я поместил это в свой файл application.properties. - person user1751825; 08.02.2021

SLF4J — бревенчатый фасад. Вам нужна реализация ведения журнала.

В настоящее время Logback является рекомендуемой структурой ведения журнала.

Чтобы войти в System.out, вы должны использовать ConsoleAppender в файле конфигурации Logback.

Пример :

<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
  <target>System.out</target>
  <encoder>
    <pattern>%-40.40c [%5.5thread] %-5p %X - %m%n</pattern>
  </encoder>
</appender>
person Jean-Philippe Briend    schedule 22.12.2011
comment
Я думаю, что logback (или log4j) является излишним для этой цели. slf4j-simple предназначен для этого варианта использования. - person Chris Dolan; 22.12.2011

Это может помочь: sysout-over-slf4j

person Alex K.    schedule 22.12.2011
comment
Это ответ на неправильный вопрос. ОП спросил, как писать сообщения slf4j в System.out. sysout-over-slf4j отправляет сообщения, записанные в System.out, в инфраструктуру slf4j. Это 2 разные вещи. Правильный ответ - Жан-Филипп Бриен. - person Dave B; 25.10.2016