Je suis nouveau dans le package de journalisation de Python et je prévois de l'utiliser pour mon projet. Je souhaite personnaliser le format de l'heure à mon goût. Voici un code court que j'ai copié à partir d'un tutoriel:
import logging
# create logger
logger = logging.getLogger("logging_tryout2")
logger.setLevel(logging.DEBUG)
# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# create formatter
formatter = logging.Formatter("%(asctime)s;%(levelname)s;%(message)s")
# add formatter to ch
ch.setFormatter(formatter)
# add ch to logger
logger.addHandler(ch)
# "application" code
logger.debug("debug message")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
logger.critical("critical message")
Et voici la sortie:
2010-07-10 10:46:28,811;DEBUG;debug message
2010-07-10 10:46:28,812;INFO;info message
2010-07-10 10:46:28,812;WARNING;warn message
2010-07-10 10:46:28,812;ERROR;error message
2010-07-10 10:46:28,813;CRITICAL;critical message
Je voudrais raccourcir le format de l'heure à: ' 2010-07-10 10:46:28
', en supprimant le suffixe en millisecondes. J'ai regardé le Formatter.formatTime, mais confus. J'apprécie votre aide pour atteindre mon objectif. Je vous remercie.
python
datetime
logging
formatting
Hai Vu
la source
la source
'formatters': { 'default': { 'format': '%(asctime)s | %(levelname)s | %(module)s | %(message)s', 'datefmt': '%Y-%m-%d %H:%M', },
En utilisant
logging.basicConfig
, l'exemple suivant fonctionne pour moi:Cela vous permet de formater et de configurer le tout sur une seule ligne. Un enregistrement de journal résultant se présente comme suit:
la source
si vous utilisez logging.config.fileConfig avec un fichier de configuration, utilisez quelque chose comme:
la source
Pour ajouter aux autres réponses, voici la liste des variables de la documentation Python.
la source