有没有办法从System.out.println触发一个触发器?

Nac*_*cht 1 java triggers listen system.out

这可能是一个非常愚蠢的问题但是,有什么方法可以在用Java在控制台上打印某些内容并在其他地方监听它时触发一个触发器?

我对触发器或System类(或Logger)的理解很少,所以如果有更简单的方法(没有触发器),请告诉我.

我们正在尝试使用Logger记录我们的所有测试.目前,我们一直在使用简单的"System.out.println"来记录控制台中的所有内容,所以我想知道是否可以在打印出来的时候触发一个触发器,然后让一个监听器将该信息添加到Logger.

谢谢.

Lou*_*man 6

最直接的方法是

System.setOut(new PrintStream(System.out) {
  public void println(String s) {
    logger.log(s);
    super.println(s);
  }
  // override some other methods?
});
Run Code Online (Sandbox Code Playgroud)