源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-06-05 02:47 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:按日期打印Python的Tornado框架中的日志的方法
网站流量上来后,日志按天甚至小时存储更方便查看和管理,而Python的logging模块也提供了[url=https://docs.python.org/2/library/logging.handlers.html#timedrotatingfilehandler]TimedRotatingFileHandler[/url]来支持以不同的时间维度归档日志。 然而根据[url=https://docs.python.org/2/howto/logging.html#configuring-logging]Logging HOWTO[/url]的官方指南设置后,却发现新的日志只剩下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')))

[list] [*]    如果你想按别的时间维度分割日志,修改when参数对应的值就可以了。[/*] [*]    特别注意:当when的值是D,表示由服务器启动的时间计起,每过24小时归档一次;而如果你和我一样,希望在每天的凌晨归档日志的话,可以配置为midnight。 [/*] [*]Centos系统可能需要先安装python-yaml:sudo yum install python-yaml[/*] [/list]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部