【发布时间】:2013-05-31 18:04:14
【问题描述】:
我有一个小型 Java 程序,它通过 bash 脚本使用 java -jar 调用。该程序调用一个 SOAP Web 服务,我想将 SOAP 消息捕获到一个文件中,以便将来进行故障排除。我发现在独立 Java 应用程序中执行此操作的唯一方法是将其添加到我的客户端类中:
static
{
// Output the SOAP message to the console
System.setProperty("com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump", "true");
System.setProperty("com.sun.xml.ws.transport.http.HttpAdapter.dump", "true");
}
这会将 SOAP 消息输出到系统输出。我可以将系统重定向到一个文件,但我还有其他消息要发送到系统输出,我想在控制台上显示这些消息。可以在文件中包含这些消息,但是 SOAP 消息太多了,无法在控制台上显示。
有没有办法可以对控制台输出进行某种选择性重定向?
【问题讨论】:
-
如果发送到控制台的其他消息是您自己的,那么您可以在它们前面加上一个特殊符号,然后通过适当的脚本过滤输出。您似乎不太可能在应用程序内执行此操作,因为 SOAP 代码将调用 System.out.print。
-
@selig 是的,这就是我最终所做的。如果您将评论添加为答案,我很乐意接受。
标签: java shell unix redirect system.out