[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...
  • chosen0ne
  • chosen0ne
  • 2012年03月06日 00:18
  • 129283

python tornado修改log输出

sed -i 's/StreamHandler()/StreamHandler(sys.__stdout__)/' /opt/python/python3/lib/python3.6/site-pac...
  • lifestxx
  • lifestxx
  • 2017年11月13日 15:00
  • 113

tornado-option模块分析

def set_configs(port=9998, env='local'): if 'env' not in options: sys.path.append('mobil...
  • weixin_37947156
  • weixin_37947156
  • 2017年07月25日 14:42
  • 812

Tornado框架03-options和日志

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

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

tornado多进程log日志切分错误的解决方式
  • networm3
  • networm3
  • 2013年11月18日 16:34
  • 5200

Tornado开发技巧

Tornado开发技巧 Tornado框架算是很轻量级的 单线程 异步 编程框架,只是额外加了很基础的模板、HEADER、COOKIE、路由等的WEB相关的支持(都定义在web.py里),它的大...
  • yypsober
  • yypsober
  • 2016年02月26日 21:08
  • 661

tornado 11、部署生产环境

一、后台运行  一般调试过程中我们使用python app.py运行网站,方便我们在命令行中看运行状况。 但在生产环境下我们需要后台运行网站。我们可以使用linux的nohup命令。nohup py...
  • qq_16234613
  • qq_16234613
  • 2016年08月20日 23:10
  • 1231

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

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

tornado--打印block日志

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

打印log日志,保存在本地

直接看代码import android.util.Log;import java.io.BufferedWriter; import java.io.File; import java.io.File...
  • tjj93622
  • tjj93622
  • 2016年01月06日 14:15
  • 272
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[python] tornado.log将输出定向到stdout
举报原因:
原因补充:

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