【发布时间】:2015-03-01 01:58:07
【问题描述】:
我正在编写一个基于每个用户记录事件的服务器端程序。我有以下代码可以做到这一点:
public void logUser(long uniqueID, String event) throws IOException
{
BufferedWriter buffWriter = new BufferedWriter(new FileWriter(uniqueID + ".log", true));
buffWriter.write(event);
buffWriter.close();
}
现在,由于同一用户可能会在很小的时间差内从不同的线程调用多个不同的事件,所以我想在每个用户的基础上同步这个过程。这是因为每个用户使用的文件都是唯一的。
我想知道实现这一目标的最有效方法。
【问题讨论】:
-
或许使用日志框架?
-
除非绝对必要,否则我宁愿坚持使用标准 Java。
-
Java 有一个标准的日志接口。日志不是您应该尝试重新发明的事情之一,除非您 a) 想学习如何编写日志框架或 b) 有一些非常独特的要求(您似乎没有)。
-
@Hele 不使用日志框架,而这正是您需要的,这会很痛苦。
-
如果
write抛出异常,你的代码会泄漏资源。
标签: java file concurrency