Как сделать Logger для System.out - PullRequest
11 голосов
/ 22 декабря 2011

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

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

Ответы [ 5 ]

14 голосов
/ 10 октября 2015

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

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

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

5 голосов
/ 07 февраля 2016

Поместите simplelogger.properties в ваш путь к классу и добавьте в него следующую строку:

org.slf4j.simpleLogger.logFile=System.out

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

5 голосов
/ 22 декабря 2011

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>
4 голосов
/ 22 декабря 2011

Рассмотрим slf4j-simple , но он записывает в stderr вместо stdout. Это минимальная реализация. Исходный код доступен для просмотра здесь: http://grepcode.com/file/repo1.maven.org/maven2/org.slf4j/slf4j-simple/1.6.1/org/slf4j/impl/SimpleLogger.java?av=f

1 голос
/ 22 декабря 2011

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

...