如何在python中配置不同模块写入同一目标的日志
所以。。。我已经阅读了所有日志教程(可能我错过了一些东西) 假设我有两个包含两个类的包 打包食品 福班 包装条 分类栏 Foo类使用的是类栏 类栏正在使用外部库 我所不希望的是能够以这样的方式配置日志记录:我可以在一个文件中看到Bar和Foo的日志,但不能看到来自外部库的日志。如果没有代码复制,我不会这么做 我已经知道如何将日志写入文件,以及如何从文件(json、yaml)配置日志。但我不想在每个文件中编写相同的配置代码行 也许有一些“正确”的方法可以做到这一点,我错过了 编辑1如何在python中配置不同模块写入同一目标的日志,python,logging,Python,Logging,所以。。。我已经阅读了所有日志教程(可能我错过了一些东西) 假设我有两个包含两个类的包 打包食品 福班 包装条 分类栏 Foo类使用的是类栏 类栏正在使用外部库 我所不希望的是能够以这样的方式配置日志记录:我可以在一个文件中看到Bar和Foo的日志,但不能看到来自外部库的日志。如果没有代码复制,我不会这么做 我已经知道如何将日志写入文件,以及如何从文件(json、yaml)配置日志。但我不想在每个文件中编写相同的配置代码行 也许有一些“正确”的方法可以做到这一点,我错过了 编辑1 哦,我忘了说,
哦,我忘了说,这个软件包是与setup.py一起安装的,其他一些项目也使用Bar。您不需要在每个文件中编写行来配置日志记录,只需在一个地方从
if _; name _;=='\uuuu main _;
子句调用即可。您可以将Foo
和Bar
的记录器配置为使用相同的FileHandler
,并且可以为外部库记录器使用适当的级别(或过滤器
),这将阻止从外部库输出任何日志。好的,您可以使用文档中的方法在不重复代码的情况下完成这项工作
如果你根据我所说的做了一些尝试,遇到了一些具体的问题,你可以更新你的问题,使之更具体,并希望得到一个更具体的答案
更新:有关
的更多信息,请参阅。如果name=='main'应该在哪里?哦,对不起,我的问题不够清楚。我完全知道这行代码的作用。但我应该把它放在哪里(在Foo、在Bar或其他使用它们的项目中)?你能举一个用Foo和Bar设置日志的简单例子吗?我更新了我的答案以回应你的评论。