Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.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 logger创建重复条目,但不显示消息_Python_Logging - Fatal编程技术网

Python logger创建重复条目,但不显示消息

Python logger创建重复条目,但不显示消息,python,logging,Python,Logging,我在程序中设置了一个简单的记录器 if __name__ == "__main__": # Logger setup logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) formatter = logging.Formatter('%(levelname)s:%(name)s:%(message)s') file_handler= logging.FileHandle

我在程序中设置了一个简单的记录器

 if __name__ == "__main__":

     # Logger setup
    logger = logging.getLogger(__name__)
    logger.setLevel(logging.DEBUG)
    formatter = logging.Formatter('%(levelname)s:%(name)s:%(message)s')
    file_handler= logging.FileHandler('debug.log')
    file_handler.setFormatter(formatter)
    logger.addHandler(file_handler)

    <some code to call other methods>

    logger.removeHandler(file_handler)
    del logger, file_handler
但是,当我检查debug.log文件时,它有如下重复条目:

*

信息:main
信息:main
信息:main

信息:main:****************************************************************

信息:main
信息:main
信息:main
信息:main:开始测试

*

我已尝试设置logger.propagate=True/False,但没有帮助。谁能帮我了解一下这里发生了什么


编辑:所有其他功能与main

Hi位于同一文件中。您是将记录器传递给函数还是函数再次获取记录器?另外,我可以看到,在带有
******
开始测试的两条消息之间,写了很多空行。正在并发调用函数?我没有将记录器作为参数传递给函数。函数逐个调用。函数必须在其作用域中包含记录器,否则使用记录器的唯一方法是在函数内部使用
getLogger
再次获取记录器。在
main
中调用的函数是否在同一模块中定义?也许你可以编辑这个问题,并添加一些信息来显示函数是如何工作的。编辑这个问题。是,所有其他函数都与main位于同一文件中。即使我不将记录器传递给被调用的函数,它们也不会从全局范围中获取它吗?嗨。您是将记录器传递给函数还是函数再次获取记录器?另外,我可以看到,在带有
******
开始测试的两条消息之间,写了很多空行。正在并发调用函数?我没有将记录器作为参数传递给函数。函数逐个调用。函数必须在其作用域中包含记录器,否则使用记录器的唯一方法是在函数内部使用
getLogger
再次获取记录器。在
main
中调用的函数是否在同一模块中定义?也许你可以编辑这个问题,并添加一些信息来显示函数是如何工作的。编辑这个问题。是,所有其他函数都与main位于同一文件中。即使我不将记录器传递给被调用的函数,它们也不会从全局范围获得它吗?
def func1(args):

logger.info("*" * 80 + "\n")
logger.info("Starting test for '{}'\n".format(args))