logging日志过滤和日志文件自动截取
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了logging日志过滤和日志文件自动截取相关的知识,希望对你有一定的参考价值。
1.日志过滤
import logging class IgnoreFilter(logging.Filter): def filter(self,record): return "girl" not in record.getMessage() #如果girl不在record里,则返回True # 1.生成logger对象 logger = logging.getLogger("130") logger.setLevel(logging.DEBUG) #不设置级别,默认最低级别是warning。 logger.addFilter(IgnoreFilter()) # 2.生成handler对象 # 把handler对象绑定到logger ch = logging.StreamHandler() # ch.setLevel(logging.DEBUG) #对屏幕和文件分别设置级别 fh = logging.FileHandler("130.log") # fh.setLevel(logging.ERROR) logger.addHandler(ch) logger.addHandler(fh) # 3.生成formatter对象 # 把formatter对象绑定到handler file_formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s %(message)s") console_formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s %(lineno)s %(message)s") ch.setFormatter(console_formatter) fh.setFormatter(file_formatter) logger.debug("miss eat") logger.warning("hello girl")
2.日志截断
2.1 根据日志大小截断
maxBytes 最大字节 backupCount 文件最多存在的个数。
from loggign import handlers
fh = handlers.RotatingFileHandler("130.log",maxBytes=10,backupCount = 5)
2.2 按照时间间隔来截断日志,最多生成五个
when 时间单位,interval 时间间隔。
fh = handlers.TimedRotatingFileHandler("130.log",when = "s",interval = 5,backupCount = 5)
以上是关于logging日志过滤和日志文件自动截取的主要内容,如果未能解决你的问题,请参考以下文章
我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情