是否可以从脚本本身外部控制python日志记录级别,而无需修改脚本?

时间:2012-07-02 08:54:27

标签: python logging

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

这是否可以在Python中进行,而无需修改使用日志记录功能的脚本?

2 个答案:

答案 0 :(得分:1)

只要python程序使用日志记录模块中的.fileConfig method,然后是,您可以通过编辑文件来更改日志记录配置。

一般来说,较大程序的主要功能就是这样称呼:

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)

documentation on the file format非常全面。

答案 1 :(得分:0)

Martijn是正确的(upvoted),但是如果您使用的是版本2.7 / 3.2或更高版本的Python,那么您可能会考虑更新的dictionary-based configuration,它提供比基于.ini文件的旧版本更好的日志记录功能配置Martijn提到。字典架构也是reasonably well documented。基于字典的配置可以通过logutils包以较高的依赖价格用于较旧的Python版本。

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