我们应该在Python项目中何时调用logging.basicConfig?
我正在查看python我们应该在Python项目中何时调用logging.basicConfig?,python,logging,Python,Logging,我正在查看pythonlogging模块以替换自定义代码,但我无法决定在何处调用basicConfig方法 如果我开发了一个名为mymodule的模块,它有子模块,那么在mymodule中只调用basicConfig一次似乎是个好主意 但是,如果我(或其他人)想在自己的模块或程序中使用mymodule,并使用logging模块,他们不能自己调用basicConfig,只能使用mymodule中为basicConfig提供的选项 我知道有黑客可以解决这个问题。但是使用basicConfig的正确方
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()不设置库的日志记录,则在模块内部写入是否完全错误:
。记录您可以使用的日志记录配置,但将其留给使用库的应用程序来设置。看看这个例子是如何实现的。无论如何配置日志记录并不总是合适的。