[python] tornado.log将输出定向到stdout

原创 2015年07月08日 19:51:44

使用 tornado (python 的一个 web 框架)的自带log时遇到一个问题,即tornado.log.logging.info时,默认是将info(或者debug, error等Level)信息打印到stderr而非stdout,这样会与其它真正的error信息混杂在一起,特别当后台日志输出频繁时,给问题排查带来麻烦。

经过查看tornado源码(Linux x86_64 python2.7, 路径 /usr/lib64/python2.7/site-packages/tornado/log.py),发现其内部亦是直接使用python自带logging模块(import logging),因此tornado.log.logging即python的logging. 找到其中logger的StreamHandler, 查看python 的官方文档,可看到其中说明:


所以直接将 /usr/lib64/python2.7/site-packages/tornado/log.py 源码里的 channel = logging.StreamHandler() 改成 channel = logging.StreamHandler(sys.__stdout__),就可以将我们自己手动打印的后台信息输出到stdout,这样当开启daemon参数运行程序时,就可以将stdout重定向到文件,将我们自己的log信息与其它真正的error信息区分开来,不再会搅在一起,目的达到了。

Python日志输出——logging模块

1. logging介绍         Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,H...

Tornado多进程方式log切分错误的解决方案

tornado多进程log日志切分错误的解决方式

Tornado框架03-options和日志

01-options在前面的示例中我们都是将服务端口的参数写死在程序中,很不灵活。 tornado为我们提供了一个便捷的工具,tornado.options模块——全局参数定义、存储、转换。02-t...

tornado模板参数传递

tornado的模板渲染可以按直观印象分为两部分: 第一部分,是由底层模板继承而来的向后传递方式。 即定义base.html,然后render方法中的html里用包含语句{% extends 'bas...
  • Gobsd
  • Gobsd
  • 2017年05月05日 10:38
  • 580

tornado--打印block日志

Tornado在使用过程,碰到过性能瓶颈。 当碰到Tornado中有比较耗时的任务的时候,请求一多就会阻塞整个服务。这个时候就需要查看到底是什么任务阻塞了服务,然后针对性的进行优化。Tornado使用...

tornado开发学习之2.输入输出,数据库操作,内置模板,综合示例

转载 http://www.youliaoo.com/post/20   用python环境中的tornado进行web开发上篇已经解决了urlmap和基本运行机制的问题。接下来进行web编程就...

tornado的简单使用

功能描述实现一个类似与令牌桶的服务,包含一个定时任务,生成令牌,对外提供一个接口用于获取令牌,每获取一次,桶内令牌相应减少实现方案采用redis+tornado的方式实现,代码很简单,不过这里写这个主...

pylint的配置与使用

简介 本文主要介绍pylint的配置与使用,如何安装请参考pylint安装,详细信息可参考pylint官方网站的帮助文档Pylint User Manual。 获取帮助信息 pylint安装成功后,可...

tornado学习笔记:wtforms-tornado简单介绍

由于项目需要使用tornado做开发,文鱼这几天认真看了下tornado的文档和之前项目现在的代码,但我看到之前项目里对post的验证逻辑,文鱼表示蛋很疼也表示理解。众所周知,tornado和djan...

Python 标准输出 sys.stdout 重定向

转自:http://www.cnblogs.com/turtle-fly/p/3280519.html 本文环境:Python 2.7  使用 print obj 而非 print(obj)  ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[python] tornado.log将输出定向到stdout
举报原因:
原因补充:

(最多只允许输入30个字)