Maison  >  Questions et réponses  >  le corps du texte

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

伊谢尔伦伊谢尔伦2741 Il y a quelques jours1168

répondre à tous(4)je répondrai

  • PHPz

    PHPz2017-04-18 10:09:15

    fh =logging.FileHandler(BASE_DIR+'/log/'+username+'_'+GetNowTime()+'_'+str(random.random())+'.log')
    
    这个你每一次创建的handler对象有没有调用`fh.close()`来清除此hander的所拥有的资源。
    

    répondre
    0
  • 大家讲道理

    大家讲道理2017-04-18 10:09:15

    Trop de fichiers sont ouverts. De manière générale, la valeur par défaut est un maximum de 1024 fichiers
    Vous devez augmenter cette valeur et vérifier combien de fichiers peuvent être exécutés en exécutant ulimit -a. Regardez les "fichiers ouverts". à l'intérieur
    D'autres sont disponibles Référence : http://askubuntu.com/question...

    répondre
    0
  • 阿神

    阿神2017-04-18 10:09:15

    logger = logging.getLogger('mylogger'+str(time.time()))
    Il y a un problème avec cette phrase Si vous n'exécutez pas get_task2 une fois, vous obtiendrez un descripteur de fichier If. vous le lancez trop de fois, il sera bien sûr dépassé !

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-18 10:09:15

    logger = logging.getLogger('mylogger'+str(time.time()))
    

    Cette façon d'écrire est intrinsèquement mauvaise et les risques potentiels sont trop élevés. Il n'est pas raisonnable de générer un journal distinct pour chaque demande. Le système Linux lui-même a également une limite sur le nombre de fichiers dans un répertoire. S'il y a trop de requêtes, la limite supérieure sera atteinte et une erreur se produira.

    Quant à savoir si le gestionnaire est fermé ou non, cela ne peut être considéré au mieux que comme une erreur de programmation, mais avoir un journal séparé pour chaque requête est complètement une mauvaise façon de penser.

    répondre
    0
  • Annulerrépondre