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')
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用于提供日志接口,常用于配置和发送日志消息。我们一般使用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对象用于将指定的日志信息发送到指定的位置。一个logger对象可以添加多个handler,每个handler又可以定义不同日志级别,以实现日志分级过滤显示。通过handler,我们可以将日志同时输出到多个位置。常用的方法包括:
①handler.setLevel():设置handler处理的日志信息最低级别
②handler.setFormatter():为handler设置一个格式器对象
③handler.addFilter():为handler添加一个过滤器对象
④handler.removeFilter():为handler删除一个过滤器对象
⑤logging.StreamHandler():将日志信息发送到Stream
⑥logging.FileHandler():将日志消息发送到磁盘文件
filter是一个过滤器,可以实现比logger和handle更细致灵活的过滤功能。
formatter对象用来输出格式化字符串,构造方法如下:
logging.Formatter.init(fmt=None, datefmt=None)
其中:
fmt:指定信息的格式化字符串,如不设定则使用信息的原始字符串
datefmt:指定日期的格式化字符串,如不设定则使用默认格式"%Y-%m-%d %H:%M:%S"