TimedRotatingFileHandler De Changer De Nom De Fichier?
Je suis en train de mettre en œuvre le python de journalisation gestionnaire appelé TimedRotatingFileHandler.
Quand il roule vers minuit, il ajoute de la journée en cours dans la forme "AAAA-MM-JJ".
LOGGING_MSG_FORMAT = '%(name)-14s > [%(levelname)s] [%(asctime)s] : %(message)s'
LOGGING_DATE_FORMAT = '%Y-%m-%d %H:%M:%S'
logging.basicConfig(
level=logging.DEBUG,
format=LOGGING_MSG_FORMAT,
datefmt=LOGGING_DATE_FORMAT
)
root_logger = logging.getLogger('')
logger = logging.handlers.TimedRotatingFileHandler("C:\\logs\\Rotate_Test",'midnight',1)
root_logger.addHandler(logger)
while True:
daemon_logger = logging.getLogger('TEST')
daemon_logger.info("SDFKLDSKLFFJKLSDD")
time.sleep(60)
Le premier fichier journal créé est appelé tout simplement "Rotate_Test" puis une fois qu'il roule vers le lendemain, il change le nom du fichier à: "Rotate_Test.AAAA-MM-JJ", Où AAAA-MM-JJ est le jour actuel.
Comment puis-je changer la façon dont il modifie le nom de fichier? J'ai googlé et regarda l'API et trouve presque rien.
OriginalL'auteur UberJumper | 2008-12-03
Vous devez vous connecter pour publier un commentaire.
"Comment puis-je changer la façon dont il modifie le nom du fichier?"
Car il n'est pas documenté, j'ai choisi de lire la source. C'est ce que j'ai conclu, à partir de la lecture de la source de
logging/handlers.py
Le suffixe est la chaîne de mise en forme.
OriginalL'auteur S.Lott
Il y a une autre approche de ce problème: par exemple, j'ai besoin de faire tourner les journaux sur une base quotidienne, mais ils doivent être nommés avec un suffixe dans l' %m%d%Y format...
J'ai donc écrit un TimedRotatingFileHandler remix!
OriginalL'auteur Alex The Smarter
Vous pouvez le faire en modifiant le journal le suffixe comme suggéré ci-dessus, mais vous aurez aussi besoin de changer la extMatch variable pour correspondre le suffixe pour qu'il trouve rotation des fichiers:
OriginalL'auteur Timmah
Grâce.
J'ai regardé la source.
Il n'est pas vraiment un moyen de changer de forme. Depuis la manipulation de suffixe, ne fait qu'ajouter à la fin du nom de fichier. L'éther façon, il n'existe aucun moyen réel moyen de manipuler le nom de fichier complet, ce que j'espérais était l'endroit où vous pouvez déclarer un masque de fichier, et quand il fait le "RollOver" il va créer un nouveau nom de fichier basé sur le masque de fichier. Je vais juste revenir à mon idée de départ, était de tuer l'ensemble du sous-système d'enregistrement et de réinitialiser avec le nouveau nom de fichier quand il RollsOver.
Grâce Tho.
emit
méthode.N'est en réalité pas une mauvaise idée, j'ai pris un regard plus en profondeur dans le code. Je vais donner un coup de feu. 🙂 Merci.
OriginalL'auteur UberJumper
Juste une mise à jour, j'ai fini par aller avec une approche différente.
La façon la plus simple que j'ai trouvée pour modifier le fichier de sortie, est de simplement utiliser un FileHandler, puis quand il est temps de faire un tonneau.
Je fais ceci:
C'est l'essentiel. Il a fallu beaucoup de piquer et de regarder autour, mais en modifiant le flux est le moyen le plus facile de le faire.
🙂
OriginalL'auteur UberJumper