按日期打印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实现从web抓取文档的方法
Sep 26 Python
举例详解Python中循环语句的嵌套使用
May 14 Python
浅析Python中的join()方法的使用
May 19 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
Jan 17 Python
python 简单照相机调用系统摄像头实现方法 pygame
Aug 03 Python
Windows 64位下python3安装nltk模块
Sep 19 Python
python+pyqt5编写md5生成器
Mar 18 Python
学python安装的软件总结
Oct 12 Python
Python中qutip用法示例详解
Oct 02 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
Oct 15 Python
python安装第三方库如xlrd的方法
Oct 31 Python
Python 列表反转显示的四种方法
Nov 16 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递归获取目录内文件(包含子目录)封装类分享
2013/12/25 PHP
php使用wordwrap格式化文本段落的方法
2015/03/17 PHP
PHP Hash算法:Times33算法代码实例
2015/05/13 PHP
PHP入门教程之会话控制技巧(cookie与session)
2016/09/11 PHP
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
thinkphp 框架数据库切换实现方法分析
2020/05/18 PHP
JavaScript toFixed() 方法
2010/04/15 Javascript
jQuery队列控制方法详解queue()/dequeue()/clearQueue()
2010/12/02 Javascript
JS模块与命名空间的介绍
2013/03/22 Javascript
jquery验证手机号码、邮箱格式是否正确示例代码
2013/07/28 Javascript
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
JS实现FLASH幻灯片图片切换效果的方法
2015/03/04 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
JavaScript基础语法之js表达式
2016/06/07 Javascript
jQuery下拉框的简单应用
2016/06/24 Javascript
详解用node-images 打造简易图片服务器
2017/05/08 Javascript
jquery将json转为数据字典的实例代码
2019/10/11 jQuery
js实现数据导出为EXCEL(支持大量数据导出)
2020/03/31 Javascript
Django实现图片文字同时提交的方法
2015/05/26 Python
在python里协程使用同步锁Lock的实例
2019/02/19 Python
Python 定义只读属性的实现方式
2020/03/05 Python
jupyter 导入csv文件方式
2020/04/21 Python
基于Python和C++实现删除链表的节点
2020/07/06 Python
python matplotlib库的基本使用
2020/09/23 Python
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
石油大学毕业生自荐信
2014/01/28 职场文书
房地产端午节活动方案
2014/08/24 职场文书
小学生五年级大队长竞选发言稿
2014/09/12 职场文书
电气工程师岗位职责
2015/02/12 职场文书
田径运动会通讯稿
2015/07/18 职场文书
2016应届毕业生实习心得体会
2015/10/09 职场文书
MySQL 如何分析查询性能
2021/05/12 MySQL
Vue鼠标滚轮滚动切换路由效果的实现方法
2021/08/04 Vue.js