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中配置不同模块写入同一目标的日志_Python_Logging - Fatal编程技术网

如何在python中配置不同模块写入同一目标的日志

如何在python中配置不同模块写入同一目标的日志,python,logging,Python,Logging,所以。。。我已经阅读了所有日志教程(可能我错过了一些东西) 假设我有两个包含两个类的包 打包食品 福班 包装条 分类栏 Foo类使用的是类栏 类栏正在使用外部库 我所不希望的是能够以这样的方式配置日志记录:我可以在一个文件中看到Bar和Foo的日志,但不能看到来自外部库的日志。如果没有代码复制,我不会这么做 我已经知道如何将日志写入文件,以及如何从文件(json、yaml)配置日志。但我不想在每个文件中编写相同的配置代码行 也许有一些“正确”的方法可以做到这一点,我错过了 编辑1 哦,我忘了说,

所以。。。我已经阅读了所有日志教程(可能我错过了一些东西)

假设我有两个包含两个类的包

打包食品 福班

包装条 分类栏

Foo类使用的是类栏

类栏正在使用外部库

我所不希望的是能够以这样的方式配置日志记录:我可以在一个文件中看到Bar和Foo的日志,但不能看到来自外部库的日志。如果没有代码复制,我不会这么做

我已经知道如何将日志写入文件,以及如何从文件(json、yaml)配置日志。但我不想在每个文件中编写相同的配置代码行

也许有一些“正确”的方法可以做到这一点,我错过了

编辑1


哦,我忘了说,这个软件包是与setup.py一起安装的,其他一些项目也使用Bar。

您不需要在每个文件中编写行来配置日志记录,只需在一个地方从
if _; name _;=='\uuuu main _;
子句调用即可。您可以将
Foo
Bar
的记录器配置为使用相同的
FileHandler
,并且可以为外部库记录器使用适当的级别(或
过滤器
),这将阻止从外部库输出任何日志。好的,您可以使用文档中的方法在不重复代码的情况下完成这项工作

如果你根据我所说的做了一些尝试,遇到了一些具体的问题,你可以更新你的问题,使之更具体,并希望得到一个更具体的答案


更新:有关
的更多信息,请参阅。

如果name=='main'应该在哪里?哦,对不起,我的问题不够清楚。我完全知道这行代码的作用。但我应该把它放在哪里(在Foo、在Bar或其他使用它们的项目中)?你能举一个用Foo和Bar设置日志的简单例子吗?我更新了我的答案以回应你的评论。