python 2.7记录日志的问题IOError: [Errno 24] Too many open files

查看:746
本文介绍了python 2.7记录日志的问题IOError: [Errno 24] Too many open files的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

@app.route('/RechargeToCard', methods=['POST'])
def get_task2():
    
    logger = logging.getLogger('mylogger'+str(time.time()))
    logger.setLevel(logging.DEBUG)
    formatter = logging.Formatter('%(asctime)s - %(levelname)s \n%(message)s')
    #登录的主页面  
    username=request.form.get('id', default='20141000000')
    fh = logging.FileHandler(BASE_DIR+'/log/'+username+'_'+GetNowTime()+'_'+str(random.random())+'.log')
    fh.setLevel(logging.DEBUG)
    fh.setFormatter(formatter)
    logger.addHandler(fh)
    message='RechargeToCard   '+request.remote_addr+'\n'
...
   message=message+'password len is not 6'
        logger.info(message )
        return   jsonify(result=0,reason='密码错误')

用Flask搭的web,放在服务器上

fh=logging.FileHandler(BASE_DIR+'/log/'+username+'_'+GetNowTime()+'_'+str(random.random())+'.log') 这句出了问题,不是一直出问题,就是偶尔出的问题,不是很明白,明明每个log文件的名字不一样,为什么会提示IOError: [Errno 24] Too many open files
最奇怪的是为什么不是一直出问题,而是偶尔出问题,求解答

解决方案

fh =logging.FileHandler(BASE_DIR+'/log/'+username+'_'+GetNowTime()+'_'+str(random.random())+'.log')

这个你每一次创建的handler对象有没有调用`fh.close()`来清除此hander的所拥有的资源。

这篇关于python 2.7记录日志的问题IOError: [Errno 24] Too many open files的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆