java – 我应该为每行日志使用try-with-resources语句吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 我应该为每行日志使用try-with-resources语句吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1094字,纯文字阅读大概需要2分钟。
内容图文
![java – 我应该为每行日志使用try-with-resources语句吗?](/upload/InfoBanner/zyjiaocheng/805/338d30b704584c65804a2ce12de2657a.jpg)
我想在每次发生事件时将(附加文本)记录到文件中.我发现这可能是使用Java 7的try-with-resources语句执行此操作的正确方法:
public void log(String textLine) {
try(PrintWriter output = new PrintWriter(new BufferedWriter(new FileWriter("Logfile.txt", true)))) {
output.println(textLine);
}catch (IOException e) {
//exception handling
}
}
我担心的是这个日志方法被频繁调用,输出被关闭并在每次调用此方法时重新打开,这是不必要的.与此同时,我希望受益于Java 7的try-with-resources语句功能.
我的担忧不是必要的,因为重新打开和关闭作家并不是一项昂贵的操作吗?或者我应该使用Java 6的老式方法,即手动处理异常并将输出声明为成员字段并在应用程序结束时手动关闭输出?
解决方法:
不,每次要在日志文件中添加新行时,都不应打开和关闭FileWriter.
你应该:
>在应用程序开始时打开日志文件
>追加它
>调用flush()
>最后调用close().
或者如果要使用try-with-resources语句,则应将调用logger方法的代码放在try-with-resources语句的主体内.多亏了这一点,您将不必调用close()方法,因为它将自动调用.
然而,最好的解决方案是,使用现有的经过实战考验的开源记录器(如log4j或logback),而不是重新安装车轮,这些记录器涵盖所有这些内部细节,并公开一个简单的API,允许您只需记录提供的消息.
内容总结
以上是互联网集市为您收集整理的java – 我应该为每行日志使用try-with-resources语句吗?全部内容,希望文章能够帮你解决java – 我应该为每行日志使用try-with-resources语句吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。