我想修改由System.out.println();
打印的输出。这怎么可能?可能-我已经在Bukkit / Craftbukkit中看到了。如果插件正在使用System.out.println(String string)打印字符串; Bukkit将时间/日期和记录状态添加到字符串中。我想像Bukkit一样。
您可以更改用作标准输出的PrintStream
:
System.setOut(PrintStream out)
创建您自己的PrintStream
实现,该实现将您想要的任何其他信息打印到(旧)标准输出,并通过以下方式进行设置:
PrintStream
示例:
以下示例在使用System.setOut(myStream);
方法打印的每个打印的String
之前打印当前时间毫秒:
PrintStream.println(String x)
输出:
PrintStream.println(String x)
注意:
此示例仅覆盖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)
现在,当您打印某些内容时,它将显示为“(File:linenumber)文本”,在许多编辑器中,您只需单击该内容即可跳到该位置。一直获取stacktrace可能很昂贵,因此最好只在调试期间使用它。