在Java中从我的进程截取STDERR
我有一个Java应用程序,其中包含一系列类,这些类使用在Java中从我的进程截取STDERR,java,logging,stderr,Java,Logging,Stderr,我有一个Java应用程序,其中包含一系列类,这些类使用System.err.println(“messagehere.”)将错误信息打印到STDERR我想截取每一行,添加类名和时间戳,然后打印到STDERR,而不改变类本身中的代码 我意识到我可以用记录器来代替对System.err.println()的调用,但我不想在记录器框架上创建依赖项(也不想开始将第三方依赖项注入到这些特定类中) 我在其他SE答案中看到的另一个建议是使用某种shell脚本——这可以用于注入时间戳,但它无法判断是哪个类生成了
System.err.println(“messagehere.”)将错误信息打印到STDERR代码>我想截取每一行,添加类名和时间戳,然后打印到STDERR,而不改变类本身中的代码
我意识到我可以用记录器来代替对System.err.println()
的调用,但我不想在记录器框架上创建依赖项(也不想开始将第三方依赖项注入到这些特定类中)
我在其他SE答案中看到的另一个建议是使用某种shell脚本——这可以用于注入时间戳,但它无法判断是哪个类生成了错误
我可能必须分解并注入一个记录器,但在此之前,我想看看是否有其他方法不会干扰我现有的类。“我试图不创建对记录器框架的依赖关系”使用Java.util.logging。这几天很不错。System.setErr
和您自己的PrintStream
子类@dave_thompson_085可以工作,但是有没有办法知道哪个类在调用它?Thread.currentThread().getStackTrace()[2].getClass().Variable
“我试图不创建对记录器框架的依赖性”使用Java.util.logging。这几天很不错。System.setErr
和您自己的PrintStream
子类@dave\u thompson\u 085可以工作,但是有没有办法知道哪个类在调用它?Thread.currentThread().getStackTrace()[2].getClass()