Python journalisation plusieurs fichiers en utilisant le même enregistreur de données
C'est mon scénario: je veux ouvrir une session mon_module de l'activité. Ce qui doit être fait, selon la méthode exécutée (disons, d'ENTRÉE et de SORTIE), de deux fichiers différents.
J'ai donc deux Gestionnaires, chacun d'un point à un autre fichier (my_in_.log & my_out_.journal), avec le même niveau de journal. Je voudrais savoir si je peux utiliser le même enregistreur de données pour atteindre ce ou je dois définir des deux enregistreurs de frappe. Mon config est:
[loggers]
keys=root, my_log
[handlers]
keys=my_in_hand, my_out_hand
[formatters]
keys=generic_form
...
[logger_my_log]
level=NOTSET
handlers=my_in_hand, my_out_hand
qualname=ws_log
[handler_my_in_hand]
class=handlers.TimeRotatingFileHandler
level=NOTSET
formatter=generic_form
args=('my_in_.log', 'h', 1, 0, None, False, True)
[handler_my_out_hand]
class=handlers.TimeRotatingFileHandler
level=NOTSET
formatter=generic_form
args=('my_out_.log', 'h', 1, 0, None, False, True)
Dois-je définir un logger par gestionnaire et/ou de destination? (parce que je veux connecter les différentes informations dans des fichiers différents)
Est-il un moyen pour indiquer à l'enregistreur de données gestionnaire qui va le faire? Je veux dire, j'ai deux gestionnaires pour un bûcheron, puis choisissez qu'un seul gestionnaire de journal d'une méthode.
Merci beaucoup!
OriginalL'auteur Alberto Megía | 2013-03-04
Vous devez vous connecter pour publier un commentaire.
Vous devez instancier un Gestionnaire pour chaque destination, vous souhaitez envoyer votre journal, puis ajouter les 2 maîtres de votre enregistreur.
Le suivant devrait fonctionner (ne pas le tester tout de même):
Bien sûr ajouter toute la configuration et les options de mise en forme, vous pourriez avoir besoin. Fondamentalement, c'est juste pour vous montrer que lorsque vous instanciez la journalisation handler, vous pouvez l'ajouter à l'enregistreur de données. À partir de ce moment, vos enregistrements de journal sera émise pour chaque gestionnaire ajouté à l'enregistreur de données.
Vous devez définir votre propre méthode qui prend en argument le journal de destination et utilise en interne le droit de gestionnaire pour le message de log.
Donc @mike vous voulez dire que je dois ajouter et supprimer enregistreur de gestionnaire pour le sélectionner lors de l'exécution? Cela peut ne pas être ma meilleure option, car ce module est de mon point de vue frontal dans un service web... avec à chaque demande, je dois passer des gestionnaires... :S
eh bien, puisque c'est une action fréquente, ajout/suppression de gestionnaires avant d'ouvrir une session, le message n'est pas la bonne approche (bien évidemment).
Je suppose que dans ce cas, alors vous avez besoin de définir 2 enregistreurs avec 2 maîtres-chiens, un de chaque. de cette façon, vous pourrez garder des contextes séparés et clair
OriginalL'auteur drekyn
Finalement, j'ai décidé de définir des deux enregistreurs de frappe, parce que:
Pour différents purposses. Dans mon cas, l'un des journaux de demande d'entrée à un service web, et de l'autre les journaux de la réponse. Et ils utilisent différents fichiers
Je suis en utilisant un enregistrement de fichier de config, dans un choc frontal web service. Ajout/suppression de gestionnaires avant l'enregistrement de messages n'est pas la bonne approche, comme @mike dit. Merci à @drekyn trop!
Voici mon fichier de configuration de la journalisation, juste pour la référence, si quelqu'un est intéressé par:
Vous voir!
OriginalL'auteur Alberto Megía
ce que vous voulez, c'est
ajouter un gestionnaire approprié enregistreur de
puis
Veuillez noter que si vous créez une RACINE enregistreur et un autre enregistreur, de la racine de l'enregistreur de journal tout ce que cette autre contrôleur est d'essayer de se connecter.
En d'autres termes, si
puis
OriginalL'auteur Denis Kanygin