Python logging дополнительная информация - PullRequest
0 голосов
/ 20 октября 2018

Если у меня есть этот код Python:

import logging
logging.basicConfig(filename='allow.txt', level=logging.DEBUG, format='%(asctime)s')
logging.debug(2+3)

, но когда я запускаю его, я получаю такой результат, который даже не имеет 5 из 3 + 2:

2018-10-20 10:06:45,177

Как мне сделать мой результат более похожим на:

2018-10-20 10:06:45 : 5

или даже лучше:

Date: 2018-10-20, Time: 10:06:45 Answer: 5

Ответы [ 3 ]

0 голосов
/ 20 октября 2018
  • Вы забыли% (сообщение) s

  • Вы можете использовать необязательный параметр datefmt

    import logging
    logging.basicConfig(filename='allow.txt', level=logging.DEBUG, format='%(asctime)s: %(message)s', datefmt="Date: %Y-%m-%d Time: %H:%M:%S")
    
0 голосов
/ 20 октября 2018

Причина, по которой это происходит, заключается в аргументе format.Ваш форматер сообщений журнала печатает только время в формате asc.Вы должны добавить message аргумент.

import logging
logging.basicConfig(filename='allow.txt', level=logging.DEBUG, format='%(asctime)s : %(message)s')
logging.debug(2+3)

В результате вы получите: 2018-10-20 20:27:44,082 : 5

Чтобы использовать «best-case», вы должны добавить форматер даты.

logging.basicConfig(filename='allow.txt', level=logging.DEBUG, format='%(asctime)s Answer: %(message)s', datefmt="Date: %Y-%m-%d, Time: %H:%M:%S")

В результате: Date: 2018-10-20, Time: 20:29:29 Answer: 5

0 голосов
/ 20 октября 2018

Вам необходимо включить %(message)s в строку формата для регистрации сообщения журнала:

logging.basicConfig(..., format='%(asctime)s : %(message)s')

Вы можете включить строки «Дата» и «Время» в метку времени, настроиваргумент datefmt:

logging.basicConfig(
    ... ,
    datefmt='Date: %Y-%m-%d, Time: %H:%M:%S',
    format='%(asctime)s Answer: %(message)s',
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...