以前用的好好的logging,拷贝过来写新的脚本时,遇到了这个问题。网上找了半天也没找到答案。
后来发现问题是这样产生的:我在try块里面定义了logging的句柄,但是在except下面使用了这个logging——而此时,如果try 中抛异常时,句柄还没创建,except中的logging就会找不到句柄了。
具体代码类似这样:
logger = logging.getLogger()
init_logger(xxx):
#此处定义输入到文件、控制台的句柄。。。
xxxx
..................
if __name__ == '__main__':
try:
init_logger(xxx)
except Exception,ex:
logger.error(xxxx)
解决 办法: 把init_logger 函数提到try前面去 就可以了。