Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们应该在Python项目中何时调用logging.basicConfig?_Python_Logging - Fatal编程技术网

我们应该在Python项目中何时调用logging.basicConfig?

我们应该在Python项目中何时调用logging.basicConfig?,python,logging,Python,Logging,我正在查看pythonlogging模块以替换自定义代码,但我无法决定在何处调用basicConfig方法 如果我开发了一个名为mymodule的模块,它有子模块,那么在mymodule中只调用basicConfig一次似乎是个好主意 但是,如果我(或其他人)想在自己的模块或程序中使用mymodule,并使用logging模块,他们不能自己调用basicConfig,只能使用mymodule中为basicConfig提供的选项 我知道有黑客可以解决这个问题。但是使用basicConfig的正确方

我正在查看python
logging
模块以替换自定义代码,但我无法决定在何处调用
basicConfig
方法

如果我开发了一个名为
mymodule
的模块,它有子模块,那么在
mymodule
中只调用
basicConfig
一次似乎是个好主意

但是,如果我(或其他人)想在自己的模块或程序中使用
mymodule
,并使用
logging
模块,他们不能自己调用
basicConfig
,只能使用
mymodule
中为
basicConfig
提供的选项


我知道有黑客可以解决这个问题。但是使用
basicConfig
的正确方法是什么,应该在哪里调用它呢?

在程序启动代码中调用它;从
\uuuu name\uuuuu=='\uuuuuu main\uuuuu'
测试触发,最好:

if __name__ == '__main__':
    import sys

    main(sys.argv)

并将不属于模块库一部分的所有需要执行的操作都放入主功能中,包括日志记录配置。

看来您是对的。这种方法的缺点是,它要求用户知道模块使用日志记录,以便查看格式良好的日志记录。这可能需要更多的知识,例如,模块中对象的调试参数。如果len(logging.root.handlers)==0:logging.basicConfig()不设置库的日志记录,则在模块内部写入是否完全错误:
。记录您可以使用的日志记录配置,但将其留给使用库的应用程序来设置。看看这个例子是如何实现的。无论如何配置日志记录并不总是合适的。