Python-logging模块

一、基本使用
日志级别,默认warning
日志级别

import logging

logging.basicConfig(filename="test.log", 
					filemode="w", format="%(asctime)s %(name)s:%(levelname)s:%(message)s", 
					datefmt="%d-%M-%Y %H:%M:%S", 
					level=logging.DEBUG) 
logging.debug('This is a debug message')
logging.info('This is an info message')
logging.warning('This is a warning message')
logging.error('This is an error message')
logging.critical('This is a critical message')

二、自定义logger
四大组件构成
四大组件

import logging
import logging.handlers

logger = logging.getLogger("logger")

handler1 = logging.StreamHandler()     #将日志信息发送到Stream
handler2 = logging.FileHandler(filename="test.log")  #将日志消息发送到磁盘文件

#设置日志信息最低级别
logger.setLevel(logging.DEBUG)
handler1.setLevel(logging.WARNING)
handler2.setLevel(logging.DEBUG)

#设置一个格式器对象
formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s %(message)s")
handler1.setFormatter(formatter)
handler2.setFormatter(formatter)

#为handler添加一个过滤器对象
logger.addHandler(handler1)
logger.addHandler(handler2)

# 分别为 10、30、30
# print(handler1.level)
# print(handler2.level)
# print(logger.level)

logger.debug('This is a customer debug message')
logger.info('This is an customer info message')
logger.warning('This is a customer warning message')
logger.error('This is an customer error message')
logger.critical('This is a customer critical message')

四大组件的常见用法如下:

logger类

logger用于提供日志接口,常用于配置和发送日志消息。我们一般使用logging.getLogger(name)方法来获得一个logger对象。其中,可选参数name指定日志器名称,默认为“root”。常用方法包括:

①logger.setLevel():设置日志器处理日志信息的最低级别

②logger.addHandler():为该logger对象添加一个handler对象

③logger.removeHandler():为该logger对象添加移除一个handler对象

④logger.addFilter():为该logger对象添加一个filter对象

⑤logger.removeFilter():为该logger对象移除一个filter对象

⑥logger.debug(),logger.info(),logger.warning(),logger.error(),logger.critical():创建一个对应等级的日志记录

⑦logger.log():获取一个日志level参数来创建一个日志记录

handler类

handler对象用于将指定的日志信息发送到指定的位置。一个logger对象可以添加多个handler,每个handler又可以定义不同日志级别,以实现日志分级过滤显示。通过handler,我们可以将日志同时输出到多个位置。常用的方法包括:

①handler.setLevel():设置handler处理的日志信息最低级别

②handler.setFormatter():为handler设置一个格式器对象

③handler.addFilter():为handler添加一个过滤器对象

④handler.removeFilter():为handler删除一个过滤器对象

⑤logging.StreamHandler():将日志信息发送到Stream

⑥logging.FileHandler():将日志消息发送到磁盘文件

filter类

filter是一个过滤器,可以实现比logger和handle更细致灵活的过滤功能。

formatter类

formatter对象用来输出格式化字符串,构造方法如下:

logging.Formatter.init(fmt=None, datefmt=None)

其中:

fmt:指定信息的格式化字符串,如不设定则使用信息的原始字符串

datefmt:指定日期的格式化字符串,如不设定则使用默认格式"%Y-%m-%d %H:%M:%S"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值