Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.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

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_Python Logging - Fatal编程技术网

如何对单个包使用python日志记录

如何对单个包使用python日志记录,python,logging,python-logging,Python,Logging,Python Logging,我正在开发一个包,并在开发期间使用日志记录进行调试/信息打印。有没有一种好方法可以只为我的包启用日志记录,而不为根目录下的所有内容启用日志记录 假设我有我的包: #其他地方的一些软件包,我需要,但不想看到它的日志记录 导入其他文件包 导入日志记录 从日志导入NullHandler logger=logging.getLogger(_名称__) logger.addHandler(NullHandler()) def my_func(): 调试(“一条消息”) 以及使用该软件包的主要功能: 导入

我正在开发一个包,并在开发期间使用日志记录进行调试/信息打印。有没有一种好方法可以只为我的包启用日志记录,而不为根目录下的所有内容启用日志记录

假设我有我的包:

#其他地方的一些软件包,我需要,但不想看到它的日志记录
导入其他文件包
导入日志记录
从日志导入NullHandler
logger=logging.getLogger(_名称__)
logger.addHandler(NullHandler())
def my_func():
调试(“一条消息”)
以及使用该软件包的主要功能:

导入我的\u包
#其他地方的一些包,我需要,但不想看到日志记录
导入另一个\u包
导入日志记录
logging.basicConfig(级别=logging.DEBUG)
my_package.my_func()
此安装程序将允许我查看我的\u func()对logger.debug()的调用,但它也将显示来自其他\u包和另一个\u包的所有logger.debug()调用,我不想看到这些调用。如何设置只能从我的_包中看到日志的位置


我可以做一些骇客的事情,比如硬代码禁用彼此包的logging.propagate或类似的功能,但感觉应该有更好的方法。

您已经为您的包定义了一个唯一的记录器。您只需要配置它。由于包记录器继承自根记录器,因此使用
basicConfig
指定的任何内容也适用于它。在调用
basicConfig
之后,只需执行特定于记录器的覆盖

import logging
logging.basicConfig(level=logging.WARNING)
logging.getLogger('my.package').setLevel(logging.DEBUG)

该死的,你是对的。我以为我试过了,但它不起作用,但我一定是第一次把事情搞砸了。也许我在导入其他东西之后初始化了日志记录?不确定什么。。。不管怎样,这对我来说很有效。谢谢