程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> 按日期打印Python的Tornado框架中的日志的方法

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

編輯:更多關於編程

       這篇文章主要介紹了按日期打印Python的Tornado框架中的日志的方法,需要的朋友可以參考下

      網站流量上來後,日志按天甚至小時存儲更方便查看和管理,而Python的logging模塊也提供了TimedRotatingFileHandler來支持以不同的時間維度歸檔日志。

      然而根據Logging HOWTO的官方指南設置後,卻發現新的日志只剩下root的,Tornado內部的logger全部沒有生效。

      參考stackoverflow上的一個回答,我發現下面的配置能讓Tornado內部的logger也用上TimedRotatingFileHandler:

      ?

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 # 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的入口代碼處調用:

      ?

    1 logging.config.dictConfig(yaml.load(open('logging.yaml', 'r')))

      如果你想按別的時間維度分割日志,修改when參數對應的值就可以了。

      特別注意:當when的值是D,表示由服務器啟動的時間計起,每過24小時歸檔一次;而如果你和我一樣,希望在每天的凌晨歸檔日志的話,可以配置為midnight。

      Centos系統可能需要先安裝python-yaml:sudo yum install python-yaml

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved