我闲着无聊,写了一个简单的日志类,向日志文件里写就简单的用FileOutputStream来写,提供给外界的方法是log.debug(String msg),在debug()内部,所有使用日志类的线程公用一个静态的Stream,在write()方法外面使用同步保护,以防止多线程干扰,??!! ,我这么做可能显得有点愚蠢,因为有个问题我不知道怎么解决:“我应该在何时关闭输出流”?总不能每个debug()方法里我new一个流,然后使用,然后关闭吧,那样也太难看了。 因为我不能确定何时关闭,所有只有让大家共用一个流吧,这样没关也就一个,不会一大堆,大家出个主意我该怎么办?

解决方案 »

  1.   

    可以用singletone模式,在最后程序关闭的时候回收资源就可以了。
      

  2.   

    to keyong19ryry(随风逐月):   公用一个stream就属于单例的情况了,如果是在main函数里调用我的类,我还可以挂个钩子,可是如果在web app里怎么办?我觉得如果写个监听器来进行关闭操作就有点小题大做了,而且我希望我的类的行为和外部环境没有耦合...to lilijr(beavers):
       我觉得这个方法不太可行,日志类要求的行为是用户打什么,那就马上持久化到文件上,定时写入文件,这个不太好吧.