禁用所有子记录器

时间:2014-06-05 19:14:41

标签: python python-2.7 logging

所以我有一个我正在运行的python脚本,它使用logging和顶级记录器,只是:

logging.basicConfig(level=logging.DEBUG)

然后该脚本导入了一些其他使用logging的东西,因此我获得了大量输出,因为这些其他脚本也会以DEBUG级别登录。我希望能够只从我的顶级记录器获得logging输出,而不是来自模块中的任何子记录器。

有没有办法可以禁用所有子记录器而无需手动命名和配置每个记录器?

1 个答案:

答案 0 :(得分:-1)

为了更好地控制日志记录,请不要使用根记录器作为默认登录 - 只需将其用于处理程序(以便所有子记录器继承添加到根记录器的处理程序),并保持其级别在WARNING(默认值)。在所有模块中,记录到通过执行

获得的记录器
logger = logging.getLogger(__name__)

在您的if __name__ == '__main__'子句中,在您想要WARNING以外的级别的特定记录器上设置级别。