python logging模块

1.python 日志等级

日志等级(level)描述
DEBUG最详细的日志信息,典型应用场景是问题诊断
INFO信息详细程度仅次于DEBUG,通常只记录关键点信息,用于确认一切都是安排我们预期的那样进行工作
WARNING当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的
ERROR由于一个严重的问题导致某些功能不能正常运行时记录的信息
CRITICAL当发生严重错误,导致应用程序不能继续运行时记录的信息

开发应用程序或部署开发环境时,可以使用DEBUG或INFO级别的日志获取尽可能的日志信息来进行开发或部署调试;应用上线或部署生产环境时,应该使用WARNING或ERROR或CRITICAL级别的日志来降低机器的I/O压力和提高获取错误日志信息的效率。日志级别的指定通常都是在应用程序的配置文件中进行指定的
2.python logging的四大组件

组件说明
loggers提供应用程序代码直接使用的接口
handlers用于将日志记录发送到指定的位置
filters提供更细微粒度的日志过滤功能,用于决定那些日志记录将会抛出(其他的日志记录将会被忽略)
formatters用于控制日志信息的最终输出格式

3.python logging日志模块相关类及常用方法介绍

方法描述
Logger.setLevel()设置日志器将会处理的日志信息的最低严重级别
Logger.addHandler()和 Logger.removeHandler()为该logger对象添加和移除一个handler对象
Logger.addFilter为该logger对象添加和移除一个filter对象

logger对象配置完成后,可以使用下面的方法来创建日志记录:

方法描述
Logger.debug(),Logger.Info(),Logger.warning(),Logger.error(),Logger.critical创建一个与他们的方法名对应等级的日志记录
Logger.exception()创建一个类似于Logger.error()的日志消息
Logger.log()需要获取一个明确的日志level参数来创建一个日志记录

说明:Logger.exception()与Logger.error()的区别在于:Logger.exception()将会输出堆栈追踪信息,另外通常只是在一个exception handler中调用该方法。 Logger.log()与Logger.debug(),Logger.info()等方法相比,虽然需要多传一个Level参数,显得不是那么方便,但是当需要记录自定义level的日志时还是需要该方法来完成
那么,怎样得到一个Logger对象呢?一种方式是通过Logger类的实例化方法创建一个Logger类的实例,但是我们通常都是用第二种方式–logging.getLogger()方法。
logging.getLogger()方法有一个可选参数name,该参数表示将要返回的日志器的名称标识,如果不提供该参数,则其值为’root’。若以相同的name参数值多次调用getLogger()方法,将会返回指向同一个logger对象的引用

import logging
import logging.handlers
import datetime


logger = logging.getLogger('mylogger')
logger.setLevel(logging.DEBUG)

rf_handle =logging.handlers.TimedRotatingFileHandler('all.log', when='midnight',
                                                     interval=1, backupCount=7, atTime=datetime.time(0,0,0,0))
rf_handle.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(message)s"))

f_handle = logging.FileHandler('error.log')
f_handle.setLevel(logging.ERROR)
# 日志级别:日志器名称:日志内容----%(levelname)s:%(name)s:%(message)s  2019-08-08 16:11:00,992 - ERROR - wang.py[:228] - error message
f_handle.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(filename)s[:%(lineno)d] - %(message)s"))

logger.addHandler(rf_handle)
logger.addHandler(f_handle)


logger.debug('debug message')
logger.info('info message')
logger.warning('warning message')
logger.error('error message')
logger.critical('critical message')

**打印结果:
all.log
2019-08-08 21:11:56,912 - DEBUG - debug message
2019-08-08 21:11:56,912 - INFO - info message
2019-08-08 21:11:56,912 - WARNING - warning message
2019-08-08 21:11:56,913 - ERROR - error message
2019-08-08 21:11:56,913 - CRITICAL - critical message

error.log
2019-08-08 21:11:56,913 - ERROR - wang.py[:233] - error message
2019-08-08 21:11:56,913 - CRITICAL - wang.py[:234] - critical message
**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值