hhhvs 2013-11-25 11:19 采纳率: 100%
浏览 3255
已采纳

Log4J中Logger如何关闭IO流

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

  • 写回答

1条回答 默认 最新

  • Todd_Pointer 2013-11-25 16:15
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题