打印

Java-Web中的Session与JdkLogger的复合问题。

Java-Web中的Session与JdkLogger的复合问题。

我在做Web服务器端开发。遇到一个问题。

我为每个Session开了一个唯一的Logger,并为这些Logger各配了一个唯一的FileHandler,写唯一命名的日志文件。

当Session过期时,Logger依然健在,FileHandler也还在工作(日志文件旁边的.lck文件依然存在)。这样下去,Logger、FileHandler和打开的文件越来越多,资源总会用完。

关闭该Web应用貌似不能停下这些FileHandler,只有关闭整个Tomcat才能消停。有什么办法能是的在Session到期后把它的Logger和FileHandler废掉?

我能想到的一部分解决办法是用SessionListener,在监听到Session过期事件时把这个Session的Logger上的FileHandler拔掉,但是对Logger本身似乎还是没什么影响。怎样才能让这些东西都不再被引用(变成垃圾等GC来吃)?

TOP

无解?有人能提供解决思路吗?还是这个问题根本就问错了?

TOP