Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.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 日志处理程序如何成为str?_Python_Logging_Handler_Freebase - Fatal编程技术网

Python 日志处理程序如何成为str?

Python 日志处理程序如何成为str?,python,logging,handler,freebase,Python,Logging,Handler,Freebase,我有一个记录器,它在脚本开始时正常工作,然后在中间中断。看起来它的处理程序被str覆盖了,但我不知道在哪里 在脚本的开始,我将打印处理程序及其级别。以下代码: print 'Array of handlers', logger.handlers for h in logger.handlers: print 'Handler', h print 'Handler level', h.level 产生以下结果: Array of handlers [<

我有一个记录器,它在脚本开始时正常工作,然后在中间中断。看起来它的处理程序被str覆盖了,但我不知道在哪里

在脚本的开始,我将打印处理程序及其级别。以下代码:

print 'Array of handlers', logger.handlers
    for h in logger.handlers:
        print 'Handler', h
        print 'Handler level', h.level
产生以下结果:

Array of handlers [<logging.FileHandler instance at 0x19ef320>]
Handler <logging.FileHandler instance at 0x19ef320>
Handler level 0
在开始设置处理程序之后(这很好),我不会添加其他处理程序或以任何方式更改现有的处理程序。我在logger上调用的唯一命令是
logger.info('event to log')


什么会以这种方式改变记录器的处理程序

字符串的内容可能会为您提供一条线索,说明它是如何出错的,以及出错的原因

我建议把

print(repr(self.log.handlers))
就在您呼叫
info
之前:

self.log.info('%s %s%s%s', method, url, formstr, headerstr)

如果处理程序是basestring的一个实例,那么在log对象上重写setattr以打印stacktrace非常方便的命令-它能够引导我直接找到它。谢谢!
print(repr(self.log.handlers))
self.log.info('%s %s%s%s', method, url, formstr, headerstr)