挂钩到System.out.println(); 并修改
我想修改System.out.println();
打印的输出System.out.println();
。 这怎么可能? 这是可能的 – 我在Bukkit / Craftbukkit中看到过它。 如果插件正在使用System.out.println(String string)打印字符串; Bukkit为字符串添加时间/日期和日志状态。 我想像Bukkit一样做。
您可以更改用作标准输出的PrintStream
:
System.setOut(PrintStream out)
创建自己的PrintStream
实现,它将您想要的任何额外信息打印到(旧)标准输出,并将其设置为:
System.setOut(myStream);
例:
以下示例在使用PrintStream.println(String x)
方法打印的每个打印String
之前打印当前时间millis:
PrintStream myStream = new PrintStream(System.out) { @Override public void println(String x) { super.println(System.currentTimeMillis() + ": " + x); } }; System.setOut(myStream); System.out.println("Hello World!");
输出:
1420553422337: Hello World!
注意:
此示例仅覆盖PrintStream.println(String x)
方法,因此调用PrintStream
其他print方法不会将时间戳添加到输出。
PrintStream print= new PrintStream(System.out) { @Override public void println(String yourString) { super.println(System.currentTimeMillis()+ ": " + yourString); } }; print.println("your String");