Soy nuevo en el paquete de registro de Python y planeo usarlo para mi proyecto. Me gustaría personalizar el formato de hora a mi gusto. Aquí hay un código corto que copié de un tutorial:
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")
Y aquí está el resultado:
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
Me gustaría acortar el formato de tiempo a solo: ' 2010-07-10 10:46:28
', dejando caer el sufijo de milisegundos. Miré el Formatter.formatTime, pero confundido. Agradezco su ayuda para lograr mi objetivo. Gracias.
python
datetime
logging
formatting
Hai Vu
fuente
fuente
'formatters': { 'default': { 'format': '%(asctime)s | %(levelname)s | %(module)s | %(message)s', 'datefmt': '%Y-%m-%d %H:%M', },
Usando
logging.basicConfig
, el siguiente ejemplo funciona para mí:Esto le permite formatear y configurar todo en una línea. El registro de registro resultante tiene el siguiente aspecto:
fuente
si usa logging.config.fileConfig con un archivo de configuración, use algo como:
fuente
Para agregar a las otras respuestas, aquí está la lista de variables de la documentación de Python.
fuente