Log4J中Logger如何关闭IO流

在项目由于日志需要对日志进行扩展,根据交易号和日期生成logger对象放入队列中,每天会清除之前的日志对象,刚开始没有发现问题,大约到了1个月左右,生产中报了java.net.SocketException:too many open files异常,首先整个系统中除了日志外,只有读取配置文件的两个本地IO操作,其他的是网络IO,其次在早上没有大规模并发请求,除了心跳报文外,其他无请求,综合上述可以将问题定位在日志上。仔细想每天我只是把日志对象从Hashtable中remove了,但是被remove的Logger对象并未立刻被GC,我想在remove后,将Logger中IO资源立即释放,求高手指点。

suannai0314
鹳狸媛 楼主的这个问题解决了么?下边的答案能解决问题么?如果可以麻烦点击答案旁的√采纳哦~如果没有也可以将自己的答案贴上然后进行采纳的。
接近 7 年之前 回复

1个回答

确定是日志文件的问题? 我Java不太熟, 但至少读写文件不会出SocketException应该是肯定的吧?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐