Python logging 日志的模块化使用示例
多模块情况下使用 logging,我窃以为官方所建议的 logging.getLogger(__name__) 作用如下: loggers 的树形结构与模块结构完全一致,每个模块使用自己的 logger 记录日志,并向上层逐渐传播,直到 root logger。如此一来,结果就是:每个模块有自己的日志,root logger 记录全局,对于中间的包,如果它的 __init__.py 中有 logger 的话,会记录自身的日志以及其下层的 logger 日志; 那如果包的 __init__.py 中没有 logger 呢?这就要看一看 PlaceHolder 了,它只是一个占位符,其下层的 loggers 会直接跳过它(可能会跳过多个),直接以更上级的 logger 为 parent,直到 root logger。【这个可以通过查看 logging.Manager 中的 _fixupParents(self, alogger) 和 _fixupChildren(self, ph, alogger) 两个函数得知树形结构的管理模式】 这对大型项目来说确实有用,当程序足够大时,要记录的日志