python logging RotatingFileHandler日志文件路径

时间:2019-01-09 10:44:27

标签: python logging ini python-logging

我正在使用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我希望我的日志文件路径相对于项目目录?

0 个答案:

没有答案
相关问题