我有以下文件配置部分:
[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 还是我做错了什么?
谢谢。
首先,不要使用 eval(),这是一个非常糟糕的主意!使用 ConfigParser 或 JSON 或其他东西来存储和加载配置。
至于错误:
args = (...,)
Run Code Online (Sandbox Code Playgroud)
这将创建一个元组。元组不能有命名元素。您希望使用元组或列表作为位置参数,使用字典作为命名参数。如果您使用 JSON 作为配置文件,您将得到这个。