是否可以在不修改脚本的情况下从脚本本身外部控制python日志记录级别?

是否可以在不修改脚本的情况下从脚本本身外部控制python日志记录级别?,python,logging,Python,Logging,这主要是一个关于如何获得与java日志记录类似的行为的问题,在java日志记录中,创建或编辑日志记录配置文件就足以改变日志记录的行为 在Python中,不必修改使用日志函数的脚本,这是否可行?只要Python程序使用来自日志模块的,那么是的,您可以通过编辑文件来更改日志配置 一般来说,大型程序的主要功能会这样称呼它: import logging DEFAULT_LOG_CONFIG = 'somepath/logging.conf' def main(args): ...

这主要是一个关于如何获得与java日志记录类似的行为的问题,在java日志记录中,创建或编辑日志记录配置文件就足以改变日志记录的行为


在Python中,不必修改使用日志函数的脚本,这是否可行?

只要Python程序使用来自日志模块的,那么是的,您可以通过编辑文件来更改日志配置

一般来说,大型程序的主要功能会这样称呼它:

import logging

DEFAULT_LOG_CONFIG = 'somepath/logging.conf'

def main(args):
    ...
    # parse command line arguments or similar
    log_config = options.logconfig or DEFAULT_LOG_CONFIG
    logging.fileConfig(DEFAULT_LOG_CONFIG)

这是非常全面的。

< P> Martijn是正确的(UpDebug),但是如果您使用Python的2.7/3.2或更高版本,那么您可能会考虑更新日志记录的更新程序,而不是基于更老的基于INI文件的配置MARTIJN提及。字典模式也同样适用。基于字典的配置可通过包以额外依赖项的价格用于较旧的Python版本


日志记录的配置功能旨在完全涵盖上述用例:您甚至可以安排长时间运行的程序(如服务器)进行重新配置,而无需重新启动。

但基于字典的配置并不描述文件格式。@Martijn:它不直接描述格式,但是到例如JSON和XML文件的映射是不言而喻的。