我正在使用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配置日志文件的绝对路径,但是我不想这样做,因为该项目可能部署在不同的路径下。
问题:
如何使用ini文件告诉RotatingFileHandler
我希望我的日志文件路径相对于项目目录?