按日期打印Python的Tornado框架中的日志的方法


Posted in Python onMay 02, 2015

网站流量上来后,日志按天甚至小时存储更方便查看和管理,而Python的logging模块也提供了TimedRotatingFileHandler来支持以不同的时间维度归档日志。
然而根据Logging HOWTO的官方指南设置后,却发现新的日志只剩下root的,Tornado内部的logger全部没有生效。
参考stackoverflow上的一个回答,我发现下面的配置能让Tornado内部的logger也用上TimedRotatingFileHandler:

# logging.yaml

version: 1
disable_existing_loggers: false
formatters:
 simple:
  format: '%(asctime)s - %(name)s - %(levelname)s - %(message)s'

loggers:
 all:
  handlers: [all]
  propagate: false
 tornado:
  handlers: [all]
  propagate: false

handlers:
 console:
  class: logging.StreamHandler
  level: INFO
  formatter: simple
  stream: ext://sys.stdout
 all:
  class: logging.handlers.TimedRotatingFileHandler
  level: INFO
  formatter: simple
  when: midnight
  filename: ./logs/server.log

root:
 level: INFO
 handlers: [console, all]
 propagate: true

只需在Tornado的入口代码处调用:

logging.config.dictConfig(yaml.load(open('logging.yaml', 'r')))
  •     如果你想按别的时间维度分割日志,修改when参数对应的值就可以了。
  •     特别注意:当when的值是D,表示由服务器启动的时间计起,每过24小时归档一次;而如果你和我一样,希望在每天的凌晨归档日志的话,可以配置为midnight。
  • Centos系统可能需要先安装python-yaml:sudo yum install python-yaml
Python 相关文章推荐
python中mechanize库的简单使用示例
Jan 10 Python
Python实现简单的语音识别系统
Dec 13 Python
Python OpenCV处理图像之图像像素点操作
Jul 10 Python
对Python subprocess.Popen子进程管道阻塞详解
Oct 29 Python
使用python实现抓取腾讯视频所有电影的爬虫
Apr 15 Python
通过pycharm使用git的步骤(图文详解)
Jun 13 Python
python实现串口自动触发工作的示例
Jul 02 Python
pandas 使用均值填充缺失值列的小技巧分享
Jul 04 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
Sep 29 Python
如何让PyQt5中QWebEngineView与JavaScript交互
Oct 21 Python
python基于tkinter实现gif录屏功能
May 19 Python
python pygame 开发五子棋双人对弈
May 02 Python
详细解读Python的web.py框架下的application.py模块
May 02 #Python
使用Python的web.py框架实现类似Django的ORM查询的教程
May 02 #Python
在ironpython中利用装饰器执行SQL操作的例子
May 02 #Python
用Python编写简单的定时器的方法
May 02 #Python
用Python程序抓取网页的HTML信息的一个小实例
May 02 #Python
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
May 02 #Python
在Python的Django框架中用流响应生成CSV文件的教程
May 02 #Python
You might like
php相当简单的分页类
2008/10/02 PHP
php获取qq用户昵称和在线状态(实例分析)
2013/10/27 PHP
PHP接入微信H5支付的方法示例
2019/10/28 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
2020/04/13 PHP
PHP7生产环境队列Beanstalkd用法详解
2020/05/19 PHP
获取表单控件原始(初始)值的方法
2013/08/21 Javascript
IE6下拉框图层问题探讨及解决
2014/01/03 Javascript
IE8中使用javascript动态加载CSS的解决方法
2014/06/17 Javascript
JS实现双击屏幕滚动效果代码
2015/10/28 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
2016/02/25 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
2016/08/05 Javascript
js控制按钮,防止频繁点击响应的实例
2017/02/15 Javascript
javascript 中Cookie读、写与删除操作
2017/03/29 Javascript
jQuery实现验证表单密码一致性及正则表达式验证邮箱、手机号的方法
2017/12/05 jQuery
vue如何在自定义组件中使用v-model
2018/05/14 Javascript
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
JavaScript中十种一步拷贝数组的方法实例详解
2019/04/22 Javascript
微信小程序左滑删除实现代码实例
2019/09/16 Javascript
js模拟实现烟花特效
2020/03/10 Javascript
Python字符串、整数、和浮点型数相互转换实例
2018/08/04 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
Python开启线程,在函数中开线程的实例
2019/02/22 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
Python求正态分布曲线下面积实例
2019/11/20 Python
利用OpenCV和Python实现查找图片差异
2019/12/19 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
2021/01/11 Python
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
Opodo英国旅游网站:预订廉价航班、酒店和汽车租赁
2018/07/14 全球购物
Chi Chi London官网:购买连衣裙和礼服
2020/10/25 全球购物
畜牧兽医本科生个人的自我评价
2013/10/11 职场文书
2014年学雷锋活动总结
2014/06/26 职场文书
委托证明范本
2014/11/25 职场文书
2014年污水处理厂工作总结
2014/12/19 职场文书
2016年小学优秀班主任事迹材料
2016/02/29 职场文书
学校学习型党组织建设心得体会
2019/06/21 职场文书