没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
使用使用Filter过滤过滤python中的日志输出的实现方法中的日志输出的实现方法
主要介绍了使用Filter过滤python中的日志输出,本文给大家分享几种方法,非常不错,具有一定的参考借鉴价
值,需要的朋友可以参考下
事情是这样的,我写了一个tornado的服务,过程当中我用logging记录一些内容,由于一开始并没有仔细观察tornado自已的日
志管理,所以我就一般用debug来记录普通日志,error记录有问题的日志,但是当服务跑起来以后才发现,tornado的访问日
志的级别是info,也就是20,debug是10的,所以如果我定义了日志的级别是debug,那么默认情况下肯定也会输出到日志文
件中的。
但是我现在并不关心访问日志,而且由于我这个服务可能每时每刻都会有访问,这样在我对日志信息进行搜索的时候就会有很
大的影响。
该怎么办呢?
有以下几种办法
修改初始化日志时的级别修改初始化日志时的级别
一种是修改我初始化时定义的日志级别,定成比info还高的,这样就不会再记录info的日志了
但是这种方法需要我将之前记录日志的 debug 方法也要修改为比info更高的级别,也就是要大于20。修改的地方有点多,且
我已经习惯了用 debug 来记录,改起来成本有点大。
修改修改tornado 本身本身
可以到site-packages中修改tornado下的 web.py
def log_request(self, handler):
"""Writes a completed HTTP request to the logs.
By default writes to the python root logger. To change
this behavior either subclass Application and override this method,
or pass a function in the application settings dictionary as
``log_function``.
"""
if "log_function" in self.settings:
self.settings["log_function"](handler)
return
if handler.get_status() < 400:
log_method = access_log.info
elif handler.get_status() < 500:
log_method = access_log.warning
else:
log_method = access_log.error
request_time = 1000.0 * handler.request.request_time()
log_method("%d %s %.2fms", handler.get_status(),
handler._request_summary(), request_time)
其中 log_method = access_log.info 可以修改它,access_log在log.py中定义,
access_log = logging.getLogger(“tornado.access”)
这里可以定义access_log的级别,然后再修改log_request的实现,想想都复杂,而且直接修改site-packes里的库文件是一个
比较笨的方法,日后迁移会发生很多莫名其妙的问题。
使用使用logging.Filter设置过滤规则设置过滤规则
其实logging早就有了相应的解决方法,logging库中有一个Filterer类,logging库中的Handler和Logger类都是继承自Filter类的
Filter类中有三个方法, addFilter(filter) , removeFilter(filter) 和 filter(record) 方法,这里主要使用addFilter和filter方法。
addFilter方法需要一个filter对象,这里我定义一个新的类,并且重写filter方法,
将日志名为 tornado.access 且日志级别是20的过滤掉。
class NoParsingFilter(logging.Filter):
def filter(self, record):
if record.name == 'tornado.access' and record.levelno == 20:
return False
return True
这样我在初始化 logging对象以后,将这个过滤器添加进去
资源评论
weixin_38536841
- 粉丝: 3
- 资源: 946
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功