2012-07-16 6 views
2

J'essaye de configurer les enregistreurs dans un fichier de configuration de texte en utilisant Python. Voici un contenu partiel:Python set filemode dans le fichier de configuration de journalisation

[logger_root] 
handlers=result 
level=NOTSET 

[handler_result] 
class=handlers.TimedRotatingFileHandler 
interval=midnight 
backupCount=5 
formatter=simple 
level=DEBUG 
args=('result_log.txt') 

Je voudrais réécrire le fichier journal chaque fois que je lance le système. Mais ne sais pas comment le mettre dans le fichier. J'essaye ceci mais échoue:

Beaucoup d'articles parlent de la façon de le placer du code de Python. Mais je voudrais le mettre dans le fichier. Comment faire? Merci.

=======================================

Edit: I peut écrire quelques informations dans le fichier journal de « result_log.txt » par:

result_logger = logging.getLogger('result') 
result_logger.debug("info to write") 

Mais je ne peux « ajouter » au fichier. Je voudrais réécrire le fichier chaque fois que je cours.

+0

que voulez-vous écrire dans 'result_log.txt'? –

+0

@AshwiniChaudhary: s'il vous plaît voir mon poste édité. – Joy

Répondre

1

Vous pouvez utiliser l'une des deux méthodes suivantes: -

  1. sauvegarde l'ancien fichier journal et créer un nouveau fichier en utilisant RotatingFileHandler

  2. Remplacez le fichier lui-même (à condition de ne plus avoir besoin de l'ancien journal). Vous pouvez jeter un oeil à this pour les étapes

Espérons que cela aide.

+0

merci. Mais je voudrais copier le fichier journal à un autre endroit après chaque exécution. Donc, ça ne me dérange pas de réécrire l'ancien journal. Je voudrais pouvoir réécrire automatiquement. – Joy

+0

alors dans ce cas, vous devriez être capable de le faire en supprimant le gestionnaire et en le réaffectant chaque fois que vous exécutez le programme. Voir le lien que j'ai donné. – gkris

+0

dans le lien que vous avez donné, je dois spécifier le gestionnaire de fichiers explicitement, ce qui n'est pas ce que je veux. Je veux juste donner le nom du fichier journal dans le fichier conf, pas dans n'importe quel endroit du code Python. – Joy

0

Au lieu d'utiliser le module enregistreur, seriez-vous en mesure d'utiliser à la place? Je comprends que ce serait une solution de contournement pour l'instant, jusqu'à ce que quelqu'un soit capable de mieux répondre à cette question.

Hope this helps :)

+0

Merci pour votre réponse. Mais l'enregistreur a beaucoup d'avantages, peut-être que vous souhaitez vérifier [la journalisation Python] (http://docs.python.org/library/logging.html) – Joy

Questions connexes