按日期打印Python的Tornado框架中的日志的方法
網(wǎng)站流量上來后,日志按天甚至小時存儲更方便查看和管理,而Python的logging模塊也提供了TimedRotatingFileHandler來支持以不同的時間維度歸檔日志。
然而根據(jù)Logging HOWTO的官方指南設置后,卻發(fā)現(xiàn)新的日志只剩下root的,Tornado內(nèi)部的logger全部沒有生效。
參考stackoverflow上的一個回答,我發(fā)現(xiàn)下面的配置能讓Tornado內(nèi)部的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的入口代碼處調(diào)用:
logging.config.dictConfig(yaml.load(open('logging.yaml', 'r')))
- 如果你想按別的時間維度分割日志,修改when參數(shù)對應的值就可以了。
- 特別注意:當when的值是D,表示由服務器啟動的時間計起,每過24小時歸檔一次;而如果你和我一樣,希望在每天的凌晨歸檔日志的話,可以配置為midnight。
- Centos系統(tǒng)可能需要先安裝python-yaml:sudo yum install python-yaml
相關文章
詳解Python 模擬實現(xiàn)生產(chǎn)者消費者模式的實例
這篇文章主要介紹了詳解Python 模擬實現(xiàn)生產(chǎn)者消費者模式的實例的相關資料,這里使用了線程知識,隊列知識及循環(huán)的知識,需要的朋友可以參考下2017-08-08Python的Django框架可適配的各種數(shù)據(jù)庫介紹
這篇文章主要介紹了Python的Django框架可適配的各種數(shù)據(jù)庫,簡單總結為就是流行的幾種數(shù)據(jù)庫Python基本上全部能用XD 需要的朋友可以參考下2015-07-07Python如何用str.format()批量生成網(wǎng)址(豆瓣讀書為例)
這篇文章主要介紹了Python如何用str.format()批量生成網(wǎng)址(豆瓣讀書為例),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09