Ведение журнала 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-файл, который я хочу, чтобы мой путь к файлу журнала был относительно каталога проекта?