如何为System.out创建一个记录器

18
我想知道如何获取用于System.out的org.slf4j.Logger。我知道这不好,但出于测试目的我需要它。
非常感谢。

请参考https://dev59.com/S2025IYBdhLWcg3wnXWf#5903253 => 使用slf4j + logback,并使用两个不同的logback配置文件;一个用于测试,一个用于主要代码。 - michael
4个回答

19

可以使用slf4j-simple,通过在程序启动时设置系统属性,使其写入标准输出:

例子代码:

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

更多信息请访问http://www.slf4j.org/api/org/slf4j/impl/SimpleLogger.html


链接不存在。 - undefined

14
将simplelogger.properties放在你的类路径中,并在其中加入以下这行代码:
org.slf4j.simpleLogger.logFile=System.out

这将导致SLF4J Simple Logger将日志记录到标准输出而不是标准错误。


1
另外,它不需要是simplerlogger.properties,当我将其放入我的application.properties文件中时,它可以工作。 - user1751825

6

SLF4J是日志门面接口。

您需要一个日志实现框架。

现在,Logback是推荐使用的日志框架。

要将日志记录到System.out,您需要在Logback配置文件中使用ConsoleAppender。

示例:

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

2
我认为logback(或log4j)对于这个目的来说有些过头了。slf4j-simple是专为此用例而设计的。 - Chris Dolan

0

8
这个回答回答了错误的问题。原帖问如何将slf4j消息写入System.out。sysout-over-slf4j会将写入System.out的消息发送到slf4j框架。这是两件不同的事情。正确的答案是由Jean-Philippe Briend给出的。 - Dave B

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接