Eu sou novo no pacote de log do Python e planejo usá-lo para o meu projeto. Gostaria de personalizar o formato da hora ao meu gosto. Aqui está um código curto que eu copiei de um 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")
E aqui está a saída:
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
Gostaria de reduzir o formato da hora para apenas: ' 2010-07-10 10:46:28
', eliminando o sufixo de milissegundos. Eu olhei para o Formatter.formatTime, mas confuso. Agradeço sua ajuda para alcançar meu objetivo. Obrigado.
python
datetime
logging
formatting
Hai Vu
fonte
fonte
'formatters': { 'default': { 'format': '%(asctime)s | %(levelname)s | %(module)s | %(message)s', 'datefmt': '%Y-%m-%d %H:%M', },
Usando
logging.basicConfig
, o exemplo a seguir funciona para mim:Isso permite que você formate e configure tudo em uma linha. Um registro de log resultante é o seguinte:
fonte
se estiver usando logging.config.fileConfig com um arquivo de configuração, use algo como:
fonte
Para adicionar às outras respostas, aqui está a lista de variáveis da documentação do Python.
fonte