Melden Sie Drehen in ein Verzeichnis mit Python
Habe ich eine Datei namens Poller.log und es angehängt, die von log-details die ganze Zeit. Ich möchte diese log-Datei gedreht werden Alltag und begrenzt durch 30 Tage. So, der code funktioniert gut.
Nun möchte ich diese Protokolle, die gedreht wurde, um in einen Ordner (z.B. logs/poller.log.2011-03-04_15-36). Ist es irgendwie Steuern, wo diese gedreht Datei erstellt werden soll?
Diesem python-Skript ausgeführt wird, die von Cron.
import logging
import logging.handlers
LOG_FILENAME = '/home/stackoverflow/snmpdata/poller.log'
# Set up a specific logger with our desired output level
poll_logger = logging.getLogger('pollerLog')
# Add the log message handler to the logger
log_rotator = logging.handlers.TimedRotatingFileHandler(LOG_FILENAME, when='d', interval=1, backupCount=30, encoding=None, delay=False, utc=False)
poll_logger.addHandler(log_rotator)
# Roll over on application start
poll_logger.handlers[0].doRollover()
Du musst angemeldet sein, um einen Kommentar abzugeben.
Python-logging-handler nicht erlauben, das zu tun, leicht. Vielleicht haben Sie 2 Art und Weise der Erreichung dieses :
Der einfachste Weg wäre, um das setup LOG_FILENAME bereits im logs/- poller.anmelden, und, wenn Sie möchten, Zugriff auf Ihre poller.melden Sie anderswo, einen symbolischen Link zu benutzen 🙂
Erstellen Sie Ihre eigenen handler ab TimedRotatingFileHandler, und copy/paste die doRollover() from /usr/lib/python2.X/logging/handlers.py, TimedRotatingFileHandler Klasse. Und ändern :
zu
Wenn es Ihnen nichts ausmacht die zusätzliche Abhängigkeit, die Sie könnte immer verwenden Sie die rollover-logging-Modul in verdreht. Twisted hat eine logfile-Modul, das die für die tägliche Protokolle, wöchentliche Protokolle, oder sogar monatlich Protokolle wie diese situation.