Как правильно настроить логирование Python.FileHandler? - PullRequest
1 голос
/ 28 февраля 2012

Я написал небольшой скрипт на Python, который обрабатывает ночные преобразования и архивирование аудиоданных. Поскольку на этом пути возникали некоторые неожиданные проблемы (несуществующие файлы, ненадежное подключение к серверу базы данных и т. Д.), Я добавил собственное средство ведения журналов Python для отслеживания любых возникших проблем.

Проблема в том, что файл журнала создается везде, где запускается скрипт (например, текущий рабочий каталог), поэтому у меня есть два файла журнала, один в моем homedir (который используется, когда скрипт запускается cron) и один в собственный каталог скрипта (используется при отладке). Я бы предпочел хранить файл журнала и файл конфигурации в том же каталоге, что и скрипт.

Я загружаю конфигурацию логгера здесь:

logging.config.fileConfig(os.path.join(sys.path[0], 'logger.conf'))

... а вот соответствующая часть моего logger.conf:

[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=fileFormatter
args=('echi_export.log', 'a',)

Абсолютные пути делают работают, хотя я немного неохотно их использую.

Короче говоря, как правильно настроить регистрацию файлов с помощью модуля logger Python (особенно FileHandler)? Достаточно примеров из реальной жизни.

1 Ответ

3 голосов
/ 01 марта 2012

Так что, очевидно, я могу использовать выражения Python внутри файла конфигурации:

[handler_fileHandler]
  <snip>
args=(os.path.join(sys.path[0],'echi_export.log'), 'a',)

Это приводит к тому, что файл журнала создается в том же каталоге, в котором находится скрипт.

(os.path.dirname(__file__) разрешается до /usr/lib/python2.7/logging/ в моей системе, где, вероятно, находится модуль журналирования).

...