草庐IT

java - 将控制台输出重定向到Java中的字符串

我有一种方法,它的返回类型是void,它直接在控制台上打印。但是我需要在字符串中输出该输出,以便我可以处理它。由于我无法对返回类型为void的方法进行任何更改,因此我必须将该输出重定向到字符串。如何在Java中重定向它? 最佳答案 如果函数正在打印到System.out,您可以使用System.setOut方法来捕获该输出以更改System.out转到您提供的PrintStream。如果您创建一个连接到ByteArrayOutputStream的PrintStream,那么您可以将输出捕获为String。例子://Createast

java - log4j 将标准输出重定向到 DailyRollingFileAppender

我有一个使用log4j的java应用程序。配置:log4j.rootLogger=info,filelog4j.appender.file=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.file.File=${user.home}/logs/app.loglog4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=%d[%t]%c%p%m%n所以所有日志语句都正确附加到文件中,但

java - log4j 将标准输出重定向到 DailyRollingFileAppender

我有一个使用log4j的java应用程序。配置:log4j.rootLogger=info,filelog4j.appender.file=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.file.File=${user.home}/logs/app.loglog4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=%d[%t]%c%p%m%n所以所有日志语句都正确附加到文件中,但

python - 返回 stdout 内容的 subprocess.check_call 的等效项是什么?

我想要一个与subprocess.check_call接口(interface)匹配的好方法——即,它在失败时抛出CalledProcessError,是同步的,&c——但是而不是返回命令的返回代码(如果它甚至这样做)返回程序的输出,或者只是stdout,或者是(stdout,stderr)的元组。有人有办法做到这一点吗? 最佳答案 python2.7+fromsubprocessimportcheck_outputasqxpython来自subprocess.py:importsubprocessdefcheck_output(*

linux - 在 bash 中,有没有办法回显/打印最后一个标准输出?是否有 stdout 分配给的变量?

在bash中,有没有办法回显/打印最后的标准输出?是否有stdout分配给的变量?我不想重定向输出。我只想在命令运行后能够读取/打印它。 最佳答案 不,没有办法看到发送到stdout的行,除非stdout已经发送到某处。如果它被发送到控制台,请从该控制台复制文本。如果您将它发送到一个文件,tail-n1该文件。如果您可以重新运行生成您想要查看的行的命令,我建议将其通过管道传输到tail-n1以仅查看最后一行输出。Bash保留已执行命令的历史记录(在GNUBash4.2中默认为~/.bash_history),但不保留输出。

spring - 禁用 Spring 日志,以获得可读日志

如何禁用Spring日志以获得我可以轻松阅读或其他人可以阅读的日志输出。一个类似问题的答案,howtodisablespringbeanloadinglog建议注释掉log4j.propertiesfile中所有具有org.springframeworksubstring的行。就我而言,没有这样的行。这里是log4j.properties#Definetherootloggerwithappenderfilelog4j.rootLogger=DEBUG,stdout#Definethefileappenderlog4j.appender.stdout=org.apache.log4j.

spring - 禁用 Spring 日志,以获得可读日志

如何禁用Spring日志以获得我可以轻松阅读或其他人可以阅读的日志输出。一个类似问题的答案,howtodisablespringbeanloadinglog建议注释掉log4j.propertiesfile中所有具有org.springframeworksubstring的行。就我而言,没有这样的行。这里是log4j.properties#Definetherootloggerwithappenderfilelog4j.rootLogger=DEBUG,stdout#Definethefileappenderlog4j.appender.stdout=org.apache.log4j.

ruby - Bash - 如何从后台 ruby​​ 脚本获取 STDOUT

我需要在后台运行一个ruby​​脚本,但我想实时查看它的输出。我写了一个名为loop.rb的简单测试:#!/usr/bin/envruby(1..4).eachdoputs"loop!"sleep1end谁的前台输出是:sony@sonymint:~/test$./loop.rbloop!loop!loop!loop!但是我在后台看不到它:sony@sonymint:~/test$./loop.rb&[2]3935sony@sonymint:~/test$但是我可以在后台看到ping的输出:sony@sonymint:~/test$pinggoogle.com&[2]3734sony@

c++ - Win32 GUI C(++) 应用程序将 stdout 和 stderr 重定向到磁盘上的同一个文件

我正在创建一个Windows服务,它不能有关联的控制台。因此我想将stdout和stderr重定向到一个(相同的)文件。这是我到目前为止的发现:在C++中重定向cout和cerr可以通过changingthebuffers完成,但这不会影响像puts或WindowsI/O句柄这样的CI/O。因此我们可以使用freopen将stdout或stderr作为文件重新打开,如here,但我们不能两次指定同一个文件。为了仍然对两者使用相同的文件,我们可以使用dup2将stderr重定向到stdout。喜欢here.到目前为止一切顺利,当我们使用/SUBSYSTEM:CONSOLE(项目属性→链接

windows - 订购 stderr 和 stdout 或刷新 stderr

我得到了以下批处理命令echo1&echo21>&2&echo3有时这会打印123有时132我怎样才能控制顺序?我必须得到订单。是否有启用以下功能的命令?echo1&echo21>&2&flush_stderr()&echo3 最佳答案 如果您使用&&而不是&,它只会在前一个命令成功完成的情况下继续执行下一个命令。从这个意义上说,您可以确保特定的进展。我认为,在某些情况下,当您运行该行时,后面的命令之一比前面的命令完成得更快,因为它们实际上都是同时启动的。编辑:另一种解决方案(虽然更冗长)是为每个命令运行start/wait。即,s