码迷,mamicode.com
首页 > Web开发 > 详细

自定义tornado日志格式

时间:2017-02-23 15:47:02      阅读:986      评论:0      收藏:0      [点我收藏+]

标签:

本文和大家分享的主要是tornado日志格式自定义相关内容,一起来看看吧,希望对大家学习python有所帮助。
第一次玩tornado。版本4.x。为了解决日志格式的问题,google了很多,没一个有效的。
tornado日志格式分两块,一块是logging的格式,一块是tornado请求消息格式。
tornado默认的访问日志输出是这样的:
WARNING:tornado.access:404 GET / (127.0.0.1) 167.93ms
其中, WARNING:tornado.access:404 logger日志内容, GET / (127.0.0.1) 167.93ms 为访问消息。
根据 enable_pretty_logging 函数,可知tornado默认采用loggingroot logger,并且,如果logger没有配置handler,则为其添加一个默认的StreamHandler
因而,应该为logging root logger预创建Handler,并指定日志格式。
依据tornado文档,输出访问日志的为 Application.log_request ,如果要自定义访问日志输出,可以继承Application并重写log_request,或者自定义log_request函数,并设置为 Application.settings log_function属性。
当然选择后者。log_function函数的写法,参照原版 Application.log_request 就行。
最后贴上我的代码供Google到此的朋友参考:
import loggingimport tornado.log
日志格式
logging.getLogger().setLevel(logging.INFO)
formatter = logging.Formatter(fmt="%(levelname).4s %(asctime)s %(name)s %(message)s", datefmt="%Y-%m-%d %H:%M:%S")
handler = logging.StreamHandler()
handler.setFormatter(formatter)
logging.getLogger().addHandler(handler)
日志消息格式def log_request(handler):
if handler.get_status() < 400:
log_method = tornado.log.access_log.info
elif handler.get_status() < 500:
log_method = tornado.log.access_log.warning
else:
log_method = tornado.log.access_log.error
request_time = 1000.0 * handler.request.request_time()
log_method("%d %s %.2fms %s", handler.get_status(),
handler._request_summary(), request_time, handler.request.headers.get("User-Agent", ""))
自定义tornado日志消息格式
app.settings["log_function"] = log.log_request


来源:化外之民

自定义tornado日志格式

标签:

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
jiangjie190
加入时间:2016-02-19
  关注此人  发短消息
文章分类
jiangjie190”关注的人------(0
jiangjie190”的粉丝们------(0
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!