Jestem nowy w pakiecie rejestrowania Pythona i planuję używać go w moim projekcie. Chciałbym dostosować format czasu do własnych upodobań. Oto krótki kod, który skopiowałem z samouczka:
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")
A oto wynik:
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
Chciałbym skrócić format czasu do po prostu: „ 2010-07-10 10:46:28
”, usuwając sufiks w sekundach. Spojrzałem na Formatter.formatTime, ale zdezorientowany. Doceniam twoją pomoc w osiągnięciu mojego celu. Dziękuję Ci.
python
datetime
logging
formatting
Hai Vu
źródło
źródło
'formatters': { 'default': { 'format': '%(asctime)s | %(levelname)s | %(module)s | %(message)s', 'datefmt': '%Y-%m-%d %H:%M', },
Przy użyciu
logging.basicConfig
następujący przykład działa dla mnie:Pozwala to sformatować i skonfigurować wszystko w jednym wierszu. Wynikowy rekord dziennika wygląda następująco:
źródło
jeśli używasz rejestrowania.config.fileConfig z plikiem konfiguracyjnym, użyj czegoś takiego:
źródło
Aby dodać do innych odpowiedzi, oto lista zmiennych z Dokumentacji Pythona.
źródło