IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

fermer le fichier de log [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 491
    Par défaut fermer le fichier de log
    Bonjour,

    Dans un module python, je crée un logger :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    logging.basicConfig(filename='myfilename.log', \
                            level=logging.DEBUG, \
                            format='%(asctime)s -- %(name)s -- %(levelname)s -- %(message)s')
     
     
    log = logging.getLogger('mylog')
     
    log.debug('This message should go to the log file')

    Le message est bien écrit dans le fichier log, mais quand je veux supprimer le fichier crée, j'ai un message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cette action ne peut être réalisée car le fichier est ouvert dans Python
    Je travaille dans Spyder pour mon developpement Python.
    Comment faire pour fermer le fichier log crée à la fin du script ?


    Merci,
    Nico

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut
    Probablement cela :
    https://docs.python.org/3/library/lo...gging.shutdown

    NB : Si votre code a planté au milieu de son exécution, alors il se peut fortement que vous deviiez fermer et réouvrir spyder.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 491
    Par défaut
    Avec shutdown, je peux maintenant supprimer le fichier log.

    Dans le basicConfig, je crée le nom de mon fichier log avec l'heure HHMMSS, pour bien identifier chaque lancement du script.
    Si je lance une première fois le script, le fichier log est bien crée, et le script écrit bien dedans.

    Si je relance une deuxième fois le script, le fichier log correspondant n'est pas crée, et le script écrit dans le fichier log crée à la première étape.
    Donc il semble qu'il y ait quelquechose qui ne soit pas réinitialisé à chaque lancement du script, malgré le shutdown.

    Nico

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut
    1) Le problème que vous décrivez à présent n'est pas le même
    2) Pour ce nouveau problème, quand vous écrivez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    logging.basicConfig(filename='myfilename.log'
    et bien vos log sont écrit dans 'myfilename.log'. Pourquoi ça changerait d'une exécution sur l'autre ? Vous indiquez à logging le nom 'myfilename.log', alors logging vous écrit le log là dedans ! Si vous voulez changer de fichier, et bien il faut lui mettre un nom moins trivial, qui soit composé par exemple de la date et de l'heure dans le nom lui meme du fichier de log.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 491
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        dt = datetime.datetime.today().strftime('%Y%m%d%H%M%S')
     
        logging.basicConfig(filename='"{}/log{}.log"'.format(os.path.dirname(os.path.dirname(__file__)), dt), \
                            level=logging.DEBUG, \
                            format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    Ca crée bien un fichier log la première fois que je lance le script, mais si je relance ensuite, ça écrit toujours dans le fichier log crée la première fois.

    Nico

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par DiverSIG Voir le message
    Ca crée bien un fichier log la première fois que je lance le script, mais si je relance ensuite, ça écrit toujours dans le fichier log crée la première fois.
    Un print (dt) vous permettrait de vérifier que çà change à chaque exécution sinon soit vous n'exécuter pas votre script normalement soit l'horloge système est en panne.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fermer un fichier log dans une boucle for
    Par _junior_ dans le forum Général Python
    Réponses: 4
    Dernier message: 25/11/2019, 11h11
  2. [tomcat 5] [paramétrage] fichier de log System.out.println
    Par Aldo dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 22/02/2005, 14h41
  3. [Oracle 8i/Fichier de log] - fichier log pour analyse erreur
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 4
    Dernier message: 25/01/2005, 19h06
  4. [Tomcat] Fichier de logs
    Par yolepro dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 22/03/2004, 16h20
  5. Fichiers de Log
    Par Mouse dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 10/05/2003, 18h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo