使用 grep 捕获 log4J 输出
我知道 log4j 默认输出到 stderror。
我一直使用以下命令捕获应用程序的输出:
application_to_run 2> log ; cat log | grep FATAL
有没有办法在没有辅助文件的情况下捕获输出?
I know that log4j by default outputs to stderror.
I have been capturing the out put of my application with the following command:
application_to_run 2> log ; cat log | grep FATAL
Is there a way to capture the output without the auxiliary file?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您想要同时使用
stdout
和stderr
,请使用:如果您想要同时使用
stderr
,则可以使用:第一个将所有输出发送到文件将句柄 2 (
stderr
) 传输到文件句柄 1 (stdout
),然后通过grep
进行管道传输。第二个执行相同的操作,但还将stdout
发送到位存储桶。这将起作用,因为重定向是一个位置问题。首先,stderr
被重定向到当前stdout
,然后stdout
被重定向到/dev/null
。If you want both
stdout
andstderr
, use:If you want both
stderr
alone, you can use:The first sends all output destined for file handle 2 (
stderr
) to file handle 1 (stdout
), then pipes that throughgrep
. The second does the same but also sendsstdout
to the bit bucket. This will work since redirection is a positional thing. First,stderr
is redirected to the currentstdout
, thenstdout
is redirected to/dev/null
.如果您询问如何将 stderr 重定向到 stdout 以便可以在管道中使用它,我知道有两种方法:
If you are asking how to redirect stderr to stdout so you can use it in a pipe, there are two ways I know of: