【问题标题】:Collecting the output messages in java在java中收集输出消息
【发布时间】:2017-08-18 17:48:04
【问题描述】:

我正在尝试编写一个代码,允许我收集打印到输出控制台的所有运行时消息。例如,当我的应用程序运行时,有时会弹出这些异常,我想收集它们并将它们打印为我的应用程序中的字符串。这是我的意思的图片。

Image

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: java runtime runtime-error outputstream runtimeexception


    【解决方案1】:

    您可以将控制台输出存储到文件中:

    PrintStream out = new PrintStream(new FileOutputStream("output.txt"));
    System.setErr(out);
    

    此外,您还可以借助 Java 日志框架。

    【讨论】:

    • 我相信通过System.setErr(...)设置System#err在这里会更合适。
    • 是的,你是对的,对于错误消息,这是最好的。
    【解决方案2】:

    我不知道你为什么需要这个,但你可以这样做

     List<String> errors = new ArrayList<String>();
                try {
    
                } catch (Exception e) {
                    StackTraceElement[] stackTraceElementArr = e.getStackTrace();
                    for (StackTraceElement ele : stackTraceElementArr) {
                errors.add(e.getMessage()+","+ele.getClassName()+","+ ele.getMethodName()+","+ ele.getLineNumber());
                    }
                }
            }
    

    这将帮助您将错误消息详细信息存储到字符串列表中。您可以对 List 对象做任何您想做的事情。你可以做更多的调整来满足你的需要

    【讨论】:

      猜你喜欢
      • 2015-07-22
      • 2010-10-28
      • 1970-01-01
      • 2021-04-20
      • 2021-03-31
      • 1970-01-01
      • 1970-01-01
      • 2020-12-30
      • 1970-01-01
      相关资源
      最近更新 更多