|
发表于 2008-6-23 00:50:23
|
显示全部楼层
虽然不是很确切理解为什么要采取每个请求一个文件的方式(感觉最后产生大量的文件会是一个大问题,也许用数据库会更加合适些?),以及标准的 Logger 架构是不是适合楼主的情形(我想象中,Logger 库恐怕不是为产生大量的文件而设计的,我很怀疑它是不是会及时地关闭文件)。不过,在 Logger 架构里面, slf4j 的 LogBack/MDC 不知道会不会有帮助。
回到最初的关于宏观的对象生命周期控制的问题,其实楼主的情形和 Apache Common 的 HttpClient 很接近。用户调用一个 Factory 方法从池中获取一个对象,使用完以后,调用 close,通知库不再使用这个对象,这样库就可以再把这个对象分配给别人。对于楼主的实现,库应该在收到通知以后,关闭这个对象对应的文件,并把这个对象的引用从内部的 HashTable 中删除。 |
|