logger模块的三项任务:
1):像应用程序提供接口,发送log message。
2):决定执行那个log 动作==》通过filter。
3):将log message发送给注册的Handlers。
常用的函数:
logger.setLevel() logger要处理的msg的level >= 设置的值。
Logger.debug(), Logger.info(), Logger.warning(), Logger.error(), and Logger.critical() 用于产生msg,就是一个格式化的字符串。 **kwargs中的exc_info参数决定是否是“打印”出exception信息。
Logger.exception() 与上面的不同在于会打印出 stace trace 信息。
Logger.log()产生可以自己定制level的msg。
getLogger()返回一个logger实例,如果不给出名字就叫root,如果多次用用一个名字call这个函数会返回同一个实例。
下面这段不懂:
Loggers that are further down in the hierarchical list are children of loggers higher up in the list. For example, given a logger with a name of foo, loggers with names of foo.bar, foo.bar.baz, and foo.bam are all descendants of foo.
logger有一个默认的等级,如果不给出就继承自父类。等级决定logger向它的handler传递的event
Handler.setLevel()和logger.setLevel() 的不同在于一个决定发送出神马级别的msg一个决定处理什么级别的msg。