Подтвердить что ты не робот

Ведение журнала Python - проверка местоположения файлов журнала?

Какова методология для понимания того, где хранятся записи журнала Python?

то есть. если я это сделаю:

import logging
log = logging.getLogger(__name__)
log.info('Test')

Где я могу найти файл журнала? Кроме того, когда я звоню:

logging.getLogger(__name__)

Это как-то связано с тем, как журнал будет вести себя/сохраняться?

4b9b3361

Ответ 1

Модуль logging использует обработчики, подключенные к регистраторам, чтобы решить, как, где и даже если сообщения в конечном итоге будут сохранены или отображены. Вы можете настроить logging по умолчанию для записи в файл. Вы действительно должны прочитать docs, но если вы вызываете logging.basicConfig(filename=log_file_name), где log_file_name - это имя файла, на который вы хотите написать письма (обратите внимание, что у вас есть для этого, прежде чем что-либо еще в logging будет вызвано вообще), тогда все сообщения, зарегистрированные во всех регистраторах (если некоторая дальнейшая реконфигурация не произойдет позже), будут там записаны. Знайте, на каком уровне установлен логгер; если память обслуживается, info находится ниже уровня журнала по умолчанию, поэтому вам нужно включить level=logging.INFO в аргументы в basicConfig, а также для того, чтобы ваше сообщение попало в файл.

Что касается другой части вашего вопроса, logging.getLogger(some_string) возвращает объект Logger, вставленный в правильное положение в иерархии из корневого регистратора, с именем, являющимся значением some_string. Вызывается без аргументов, он возвращает корневой журнал. __name__ возвращает имя текущего модуля, поэтому logging.getLogger(__name__) возвращает объект Logger с именем, установленным на имя текущего модуля. Это общий шаблон, используемый с logging, поскольку он заставляет структуру журналов отражать структуру модуля кода, что часто делает сообщения протоколирования гораздо более полезными при отладке.

Ответ 2

Чтобы получить лог-адрес простого регистратора файлов, попробуйте

logging.getLoggerClass().root.handlers[0].baseFilename

Ответ 3

Чтобы найти местоположение файла журнала, попробуйте создать экземпляр объекта log в оболочке Python в вашей среде и посмотрите на значение:

log.handlers[0].stream