Python 使用twisted的日志记录不打印到屏幕

Python 使用twisted的日志记录不打印到屏幕,python,twisted,Python,Twisted,这个问题与此有些关联 我想把日志放在屏幕上使用。当一个字符串被传递到log方法时,它工作,但当python对象被传递到链接文档中时,它不工作(下面代码最后一行的log语句) 据消息人士透露, .debug和.info都调用相同的def emit(self,level,format=None,**kwargs) 如果是info,则是self.emit(LogLevel.info,format,**kwargs)和debug调用self.emit(LogLevel.debug,format,**kw

这个问题与此有些关联

我想把日志放在屏幕上使用。当一个字符串被传递到log方法时,它工作,但当python对象被传递到链接文档中时,它不工作(下面代码最后一行的log语句)

据消息人士透露,
.debug
.info
都调用相同的
def emit(self,level,format=None,**kwargs)

如果是info,则是self.emit(LogLevel.info,format,**kwargs)和debug调用
self.emit(LogLevel.debug,format,**kwargs)

因此,如果您希望log.debug正常工作,则应坚持使用该格式,并将其命名为:

log.debug('debug with {obj}', obj=log)

根据
emit()
的签名,当未传递格式时,其值默认为
None
so`log.debug(obj=log)`应该可以工作。当然,从本文档中也可以看到,格式可以是
None
,并且emit将明确运行。但随后通过调用self.observer(event)将其传递给观察者,其中event是一个dict,其“log\u format=format”为None。然后查看
def\u formatEvent(event):
\u format.py
中有
如果格式为None:return u”“
它将打印一个空字符串。
log.debug('debug with {obj}', obj=log)