Python Logging 是官方的标准库,用来实现日志记录的功能
查看logging已配置的日志保存路径
logging.getLoggerClass().root.handlers[0].baseFilename
如果没有则为空
组件
Loggers、handlers、filters、formatters
1.Logger
Logger 对象上使用最广泛的方法分为两类:配置和消息发送
参见的配置方法:
1.Logger.setLevel()
2.Logger.addHandler()和Logger.removeHandler()
3.Logger.addFilter()和Logger.removeFilter()
getLogger()返回具有指定名称的记录器实例的应用(如果已提供),活着的如果则返回root
. 名称是以据点分割的层次结构.多次调用返回已存在对象的引用.
分成列表中较低的记录器是列表中较高的记录器的子项.
如果存在foo
的记录器,名称为foo.bar
、foo.bar.baz
的记录器都是foo
的子项
Logger 有有效等级
的概念. 如果围在记录器上显式设置级别,则使用父记录器的级别作为有效级别,如果父记录器没有明确的级别设置,则检查其父级.依此类推,搜索上级元素,知道找到明确设置的级别.根记录器始终有显式级别集(默认情况下为WARNING
).在决定是否处理事件时,记录器的有效级别确定是否传递给记录器相关的处理器.
子记录器将消息传播到与其父级记录器关联的处理器.因此不必为应用程序使用的所有记录器进行定义和配置处理器.一般为顶级记录器配置处理器,根据需要创建子记录器集就足够了
参考资料
[1].logging-cookbook
[3].commit log of python logging module
[4].PEP 282 — A Logging System