详解Python logging调用Logger.info方法的处理过程
2019-09-13 11:56:31 来源:易采站长站 作者:刘景俊
看到会调用record.getMessage(),这里仅仅是获取我们需要的日志信息。
之后会调用s = self.formatMessage(record):
def formatMessage(self, record): return self._style.format(record)
其实是调用了当前style的format方法,以%这一类型为例PercentStyle:
class PercentStyle(object): default_format = '%(message)s' asctime_format = '%(asctime)s' asctime_search = '%(asctime)' def __init__(self, fmt): self._fmt = fmt or self.default_format def usesTime(self): return self._fmt.find(self.asctime_search) >= 0 def format(self, record): return self._fmt % record.__dict__
从其中的format方法可以看出,是针对record的__dict__属性中的所有参数进行格式化,这下,就清楚了之前的extra参数是干嘛用的了:可以在formatter中加入自己自定义的一些参数,如固定的用户信息等等。
之后,将最终的message flush到对应的Stream里面去就行了,就是整个流程:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易采站长站。
暂时禁止评论













闽公网安备 35020302000061号