java – 自动在’System.out.println()’语句中显示日期

我知道您打印的每一行都可以用日期标记(并且还保存为日志文件).

例如在Minecraft中:

[16:21:43 INFO]: Minecraft Launcher 1.3.9 (through bootstrap 5) started on windows...

我怎么做?也许和Logger一起?或者是否需要外部图书馆?

解决方法:

可以通过调用System.out.println在String中显示前缀的日期

>创建自定义PrintStream类
>覆盖println方法,为String添加日期前缀
>使用自定义PrintStream设置System.setOut

自定义流:

public class MyPrintStream extends PrintStream {

    public MyPrintStream(OutputStream out) {
        super(out);
    }

    @Override
    public void println(String string) {
        Date date = new Date();
        super.println("[" + date.toString() + "] " + string);
    }
}

测试类:

 public static void main(String[] args) {
            System.setOut(new MyPrintStream(System.out));
            System.out.println("Hello World!");
                System.out.println("Yellow World!");
        }

输出:

[Mon Feb 10 21:10:14 IST 2014] Hello World!
[Mon Feb 10 21:10:14 IST 2014] Yellow World!
上一篇:java – 如何正确地将Dye设置为ItemStack?


下一篇:linux – Crontab权限被拒绝