logging模块详解

logging模块

logging模块简单使用


In [1]: import logging

 # 记录debug级别的日志;
In [2]: logging.debug("this is a debug info")

# 记录info级别的日志;
In [3]: logging.info("this is a info")

# 记录警告级别的日志;
In [4]: logging.warn("this is a warn")
WARNING:root:this is a warn

# 记录错误级别的日志;
In [5]: logging.error("this is a error info")
ERROR:root:this is a error info

# 记录严重错误级别的日志;
In [6]: logging.critical("this is a critical info")
CRITICAL:root:this is a critical info

总结:默认情况下,logging模块将日志打印到屏幕上(stdout),日志级别为WARNING(即只有日志级别高于WARNING的日志信息才会输出),日志格式为:日志级别 : 日志实例的名称 : 日志信息;

  • 日志级别
日志级别含义
DEBUG调试信息,只有用户在调试代码时才会用;
INFO确保代码按照预期正常运行;
WARNING表明不久的将来会发生问题,软件还是在正常工作;
ERROR由于更严重的问题,软件已不能执行一些功能了;
CRITICAL严重错误,表明软件已不能继续运行了;


  • 怎样设置日志的输出方式(eg:保存到文件…)
#!/usr/bin/env python
#coding:utf-8


import logging

# 通过下面的方式进行简单配置输出方式与日志级别;
# 代表日志级别大于等于debug的日志信息保存在文件"mylog.log"文件中;
logging.basicConfig(filename="mylog.log", level=logging.DEBUG)

logging.debug("debug")
logging.info("info")
logging.warn("warn")
logging.error("error")
logging.critical("critical")
# mylog.log文件的内容如下:
DEBUG:root:debug
INFO:root:info
WARNING:root:warn
ERROR:root:error
CRITICAL:root:critical

其他重要的概念

Logger 记录器

  • Logger 记录器暴露了应用程序代码能直接使用的接口。

  • Logger是一个树形层级结构,在使用接口debug,info,warn,error,critical之前必须创建Logger实例,即创建一个记录器.

  • 如果没有显式的进行创建,则默认创建一个root logger,并应用默认的日志级别(WARN),处理器Handler(StreamHandler,即将日志信息打印输出在标准输出上),和格式化器Formatter(默认的格式即为第一个简单使用程序中输出的格式)。

创建方法:

logger = logging.getLogger("logger_name")

增加处理器Handler:

# 设置日志级别为ERROR,即只有级别>=ERROR的日志才会输出;
logger.setLevel(logging.ERROR) 

# 为logger实例增加一个处理器;
logger.addHandler(handler_name)

# 为logger实例删除一个处理器 
logger.removeHandler(handler_name) 

Handler 处理器

将(记录器产生的)日志记录发送至合适的目的地。

Filter 过滤器

提供了更好的粒度控制,它可以决定输出哪些日志记录。

Formatter 格式化器

指明了最终输出中日志记录的布局。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值