您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    Python 如何仅用 5000 行代码,完成弱小的 logging 模块?(4)
    时间:2021-03-08 21:02 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

                                 exc_info, func, extra, sinfo) 

        # 运用handler处置日志 

        self.handle(record) 

    日志记载的消费,就是创立一个LogRecord对象:

    _logRecordFactory = LogRecord 

     

    def makeRecord(self, name, level, fn, lno, msg, args, exc_info, 

                   func=None, extra=None, sinfo=None): 

        ... 

        rv = _logRecordFactory(name, level, fn, lno, msg, args, exc_info, func, 

                             sinfo) 

        ... 

        return rv 

    运用logger对象的一切handler处置日志:

    def handle(self, record): 

        c = self 

        found = 0 

        while c: 

            for hdlr in c.handlers:  # 运用一切的handler处置日志 

                found = found + 1 

                if record.levelno >= hdlr.level: 

                    hdlr.handle(record) 

    root-logger的handler是在config中配置的:

    def basicConfig(**kwargs): 

        ... 

        root.addHandler(h)  # 设置root的handler 

    日志记载对象 LogRecord

    日志记载对象十分复杂:

    class LogRecord(object): 

        def __init__(self, name, level, pathname, lineno, 

    (责任编辑:admin)