Je suis nouveau sur le module de journalisation de python. Je souhaite créer un nouveau fichier journal tous les jours lorsque mon application est en cours d'exécution.
log file name - my_app_20170622.log
log file entries within time - 00:00:01 to 23:59:59
Le lendemain, je veux créer un nouveau fichier journal avec la date du lendemain -
log file name - my_app_20170623.log
log file entries within time - 00:00:01 to 23:59:59
J'utilise le module de journalisation de python.
J'utilise comme ci-dessous -
log_level = int(log_level)
logger = logging.getLogger('simple')
logger.setLevel(log_level)
fh = logging.FileHandler(log_file_name)
fh.setLevel(log_level)
formatter = logging.Formatter(log_format)
fh.setFormatter(formatter)
logger.addHandler(fh)
Existe-t-il des configurations dans le module de journalisation de python pour créer un journal au quotidien?
Vous devez créer une TimedRotatingFileHandler
:
from logging.handlers import TimedRotatingFileHandler
logname = "my_app.log"
handler = TimedRotatingFileHandler(logname, when="midnight", interval=1)
handler.suffix = "%Y%m%d"
logger.addHandler(handler)
Ce morceau de code créera un my_app.log
mais le journal sera déplacé vers un nouveau fichier journal nommé my_app.log.20170623
lorsque le jour actuel se terminera à minuit.
J'espère que ça aide.
Enfin, j'ai la bonne réponse et je veux partager cette réponse.
Fondamentalement, il faut créer un TimedRotatingFileHandler comme ci-dessous -
log_format = "%(asctime)s - %(levelname)s - %(message)s"
log_level = 10
handler = TimedRotatingFileHandler("my_app.log", when="midnight", interval=1)
handler.setLevel(log_level)
formatter = logging.Formatter(log_format)
handler.setFormatter(formatter)
# add a suffix which you want
handler.suffix = "%Y%m%d"
#need to change the extMatch variable to match the suffix for it
handler.extMatch = re.compile(r"^\d{8}$")
# finally add handler to logger
logger.addHandler(handler)
Ce code ci-dessus générera un fichier tel que my_app.log pour le jour actuel et my_app.log.20170704 pour le jour précédent.
J'espère que ça aide.
Je vous suggère d’examiner le logging.handlers.TimedRotatingFileHandler
. Je pense que c’est ce que vous recherchez.