我需要将System.out / err.println输出重定向到slf4j。
我知道这不是正确记录日志的方法, 但是有一个外部库记录到System.out
您可以使用sysout-over-slf4j。
sysout-over-
slf4j模块允许用户将对System.out和System.err的所有调用重定向到SLF4J定义的记录器,该记录器的名称是在其中进行System.out.println(或类似调用)的完全合格的类的名称。
,处于可配置的级别。
如果您 不 使用Maven,请下载
jar并将其添加到您的类路径中。
或者,将其添加为Maven依赖项:
<dependency>
<groupId>uk.org.lidalia</groupId>
<artifactId>sysout-over-slf4j</artifactId>
<version>1.0.2</version>
</dependency>
然后在应用程序启动时,调用:
SysOutOverSLF4J.sendSystemOutAndErrToSLF4J();
我想在日志文件中看到我的jnlp标准输出。请建议。p. s.我jnlp在windows下运行,使用log4j记录器
问题内容: 我有一个扩展了并包含的类(如下所示)。我想重定向和我。我的课似乎没用。当我运行它时,它会重定向系统打印,但不会将它们打印到我的。请帮忙! 注意: 仅在应用程序启动时才重定向呼叫。但是,启动后的任何时间都不会将呼叫重定向到。(即,如果我将a放置在类中,它将被调用,但是如果将其放置在a中以供以后使用,则它不会重定向)。 问题答案: 管道流总是使我感到困惑,这就是为什么我的Message C
问题内容: 声明为。 但是你可以致电重新分配它。 ??如果是这样怎么可能? (和适用于) 更重要的是,如果你可以对public static final字段进行突变,那么就可以为你提供的保证(如果有)意味着什么?(我从未意识到,也没想到System.in/out/err表现为变量) 问题答案: 通常,最终的静态字段可能不会被修改。然而和是,由于遗留原因,必须允许通过方法来改变最终的静态字段和。我们
问题内容: 请参见下面的代码段 当我多次执行代码时,我会如下随机获得输出,有时System.out语句首先在控制台中打印,有时System.err首先打印。以下是我得到的随机输出 输出1 输出2 为什么会这样呢? 问题答案: 我相信这是因为您正在写入两个不同的输出(一个是标准输出,另一个是标准错误)。这些可能在运行时由两个不同的线程处理,以允许在Java执行期间同时写入两者。假设是这种情况,cpu
问题内容: 我在cyberciti.biz的评论中看到了这个有趣的问题。 我发现我什至找不到在sh的单行命令中执行此操作的灵活方法。 到目前为止,我对解决方案的想法是: 但是您会看到,这不是同步的,而且致命的是,它是如此丑陋。 欢迎与您分享这个想法。:) 问题答案: 你要 这里的顺序很重要。假设stdin(fd 0),stdout(fd 1)和stderr(fd 2)最初都连接到tty,因此 首先