所以...我读过this和所有的日志教程(也许我错过了什么)
假设我有两个包含两个类的包。
包Foo Foo类
包裹吧 class Bar
类Foo正在使用类Bar。
Class Bar正在使用外部库。
我不想以能够在一个文件中看到Bar和Foo的日志而不是外部库的日志来配置日志记录。如果没有代码重复,我不会这样做。
我已经知道如何将日志写入文件以及如何从文件(json,yaml)配置日志记录。但我不想在每个文件中编写相同的配置代码行。
也许有一些'正确'的方法可以做到这一点,我错过了?
EDIT1
哦,我忘了说,这个软件包是用setup.py安装的,Bar也用于其他一些项目。
答案 0 :(得分:0)
您无需编写行来配置每个文件中的日志记录 - 只需在if __name__ == '__main__'
子句中调用的一个位置。您可以为Foo
和Bar
配置记录器以使用相同的FileHandler
,并且您可以使用适当的级别(或Filter
)作为外部库记录器,这将阻止任何从外部库记录输出。 AFAIK可以使用记录的方法在没有代码重复的情况下执行此操作。
如果你根据我所说的尝试某些事情并遇到特定问题,你可以更新你的问题以更具体,并希望得到更具体的答案。
更新:有关__name__ == '__main__'
的详情,请参阅this question and its answers。