python 记录 kwarg 在通过 args 部分时失败

use*_*761 5 python logging

我有以下文件配置部分:

[handler_file]
class = handlers.TimedRotatingFileHandler
args = ( '../output/DataUpload.log', when='D', backupCount=3)
formatter = generic
Run Code Online (Sandbox Code Playgroud)

由logging.config指定

from logging import config, getLogger
config.fileConfig( "config/logging.cfg", disable_existing_loggers = True )
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

  args = eval(args, vars(logging))
  File "<string>", line 1
    ( '../output/DataUpload.log', when='D', backupCount=3)
                                      ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

这里不支持 kwargs 还是我做错了什么?

谢谢。

Col*_*lau 0

首先,不要使用 eval(),这是一个非常糟糕的主意!使用 ConfigParser 或 JSON 或其他东西来存储和加载配置。

至于错误:

args = (...,)
Run Code Online (Sandbox Code Playgroud)

这将创建一个元组。元组不能有命名元素。您希望使用元组或列表作为位置参数,使用字典作为命名参数。如果您使用 JSON 作为配置文件,您将得到这个。

  • +1您不能使用“logging.config”传递关键字参数[源参考](http://hg.python.org/cpython/file/29bdbcadf299/Lib/logging/config.py#l155) (5认同)