使用dict和自定义处理程序

时间:2016-10-07 09:20:20

标签: python logging flask python-3.5

我为python的日志包编写了一个自定义日志记录处理程序。此处理程序可能有效,也可能无效,但这超出了问题的范围。

我正在尝试使用配置dict指定处理程序。但是日志包似乎无法找到正确的类。这是我的配置字典的相关部分:

"file": {
    "class": "iis.logging.LockingFileHandler",
    .
    .
    .
}

在文件configuration/development.py中定义了哪个。它已导入并传递到文件logging.config.dictConfig中的iis/__init__.pyLockingFileHandler在文件iis/logging.py中定义。 configurationiis都在我的路上。

当我运行flask(导入iis/__init__)时,我收到以下错误消息:

Traceback (most recent call last):
  File "/usr/lib64/python3.5/logging/config.py", line 384, in resolve
    self.importer(used)
ImportError: No module named 'iis.logging.LockingFileHandler'; 'iis.logging' is not a package

接下来是由这一个引起的一堆例外。我怀疑我在这里捣蛋。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我认为我是Python令人困惑的(!)导入语义的受害者。模块iis.logging正在欺骗全局logging模块(以某种方式)。重命名为iss.log就可以了。