Java应用程序在程序启动时创建空的error.log

时间:2014-03-28 14:48:24

标签: java eclipse printstream

我希望我的应用程序创建一个error.log,当且仅当发生错误时。所以我这样做了:

System.setErr(new PrintStream("error.log"));

在Eclipse中按预期工作 - 发生错误,在源目录中弹出error.log并显示错误消息。然而,导出的应用程序在程序启动时创建一个完全空的日志文件,这很烦人。这种行为的原因是什么?

2 个答案:

答案 0 :(得分:0)

查看PrintStream api

如果new PrintStream文件不存在,则致电error.log时,会创建该文件。

http://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html#PrintStream(java.lang.String)

  

fileName - 要用作此目标的文件的名称   打印流。如果文件存在,那么它将被截断为零   尺寸;否则,将创建一个新文件。输出将是   写入文件并进行缓冲。

答案 1 :(得分:0)

来自PrintStream docs

  

fileName - 用作此打印流目标的文件的名称。如果文件存在,那么它将被截断为零大小; 否则,将创建一个新文件。输出将被写入文件并被缓冲。

此代码在我的NetBeans版本中创建文件。您可以在第一个错误上创建PrintStream,而不是创建它,无论如何。