我想写一个非常简单的Java日志记录类,可以写入日志文件,所以我可以在我的其他项目中重复使用它。我扩展了PrintWriter
类,以便在写入日志文件之前检测日志文件是否已打开。打开和关闭一个PrintWriter对象反复在Java中不好的做法?
当用户完成日志记录时,他们必须在日志记录对象上调用.close()
来关闭文件。当只集成到单一类应用程序中时,这不是什么大问题,但现在我试图将此记录器类集成到几个不同的父类和子类中,这些类将引用相同的日志文件,并且不会关闭一个参考,我将无法打开另一个班的另一个。
每次记录什么内容时,致电.open()
,.write(msg)
,.close()
会很糟糕吗?它会手动消除需要open
和close
记录器。或者有没有更好的解决方案?
我发现this similar question为C++,但唯一的答案是“以我的经验...”,我有点寻找更深入的答案。
我认为这本质上是基于意见的,但通常打开和关闭文件(或不断重新创建对象)是不好的做法。 OTOH日志往往是一种相对较少的东西,所以尝试优化它并不总是有意义的。如果遇到问题,请使用分析器。如果你没有问题,“如果它没有损坏,不要修复它。” – markspace