Ведение журнала Python Путь к файлу журнала RotatingFileHandler

Я использую logging.ini файл для настройки регистрации Python для моего проекта.

[formatters]
keys=default,colored

[formatter_default]
format=%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s
class=logging.Formatter

[formatter_colored]
format=%(log_color)s%(levelname)-4s %(asctime)s%(reset)s %(message)s
class=colorlog.ColoredFormatter

[handlers]
keys=console,syslog,filelog

[handler_console]
class=logging.StreamHandler
level=INFO
formatter=colored
args=tuple()

[handler_syslog]
class=logging.handlers.SysLogHandler
level=INFO
formatter=default
args=tuple()

[handler_filelog]
class=logging.handlers.RotatingFileHandler
level=INFO
formatter=default
args=('log/mylog.log', 'a', 2000000, 5)

[loggers]
keys=root

[logger_root]
level=INFO
formatter=default
handlers=console,syslog,filelog

В частности, я настроил handler_filelog для использования RotatingFileHandler, Я передаю аргументы в конструктор через args запись.

В этом случае я хочу, чтобы мой файл журнала находился под my project dir/log/mylog.log,

Если я запускаю скрипт из каталога, в котором он находится, он работает как положено.

Если я запускаю скрипт откуда-либо еще, он предполагает, что log/mylog.log Файл относится к этому каталогу, а это не то, что я хочу.

Тривиальным решением было бы настроить RotatingFileHandler с абсолютным путем к файлу журнала, но я не хочу этого делать, поскольку проект может быть развернут по разным путям.

Вопрос: как я могу сказать RotatingFileHandler используя INI-файл, который я хочу, чтобы мой путь к файлу журнала был относительно каталога проекта?

0 ответов

Другие вопросы по тегам