我有从以下另一个模块导入的python脚本的配置字典
LOG_CONFIG = {
'version': 1,
'disable_existing_loggers': False,
'loggers': {
'': {
'handlers': ['consoleHandler', 'fileHandler'],
'level': 'DEBUG'
}
},
'handlers': {
'consoleHandler': {
'level': 'INFO',
'formatter': 'consoleFormatter',
'class': 'logging.StreamHandler',
'stream': 'ext://sys.stdout',
},
'fileHandler': {
'level': 'INFO',
'formatter': 'fileFormatter',
'class': 'logging.FileHandler',
'mode': 'w',
}
},
'formatters': {
'fileFormatter': {
'format': '%(asctime)s - %(levelname)s - %(name)s - %(module)s - %(funcName)s - %(message)s',
'datefmt': '%Y-%m-%d %H:%M:%S',
'class': 'logging.Formatter'
},
'consoleFormatter': {
'format': 'UAC_API>> %(levelname)s - %(message)s'
},
},
}
我希望日志文件名可变。从文件加载配置时,我使用了:
logging.config.fileConfig(config_file,
defaults={'logfilename': logfullpath},
disable_existing_loggers=False)
logfullpath
是日志文件的路径。
但是defaults={'logfilename': logfullpath}
与dictConfig
不兼容(与logging.config.fileConfig
相比只有一种说法)。有人可以帮我吗?
答案 0 :(得分:0)
找到解决方法,如果有人遇到相同的问题。由于LOG_CONFIG
是我扩展的字典,如下所示(将filename:logfullpath
添加为fileHandler
的键值对)。然后,我将其用作dictConfig
的参数。
LOG_CONFIG['handlers']['fileHandler']['filename'] = logfullpath
logging.config.dictConfig(LOG_CONFIG)