您好,欢迎访问一九零五行业门户网

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

网站流量上来后,日志按天甚至小时存储更方便查看和管理,而python的logging模块也提供了timedrotatingfilehandler来支持以不同的时间维度归档日志。
然而根据logging howto的官方指南设置后,却发现新的日志只剩下root的,tornado内部的logger全部没有生效。
参考stackoverflow上的一个回答,我发现下面的配置能让tornado内部的logger也用上timedrotatingfilehandler:
# logging.yamlversion: 1disable_existing_loggers: falseformatters: simple: format: '%(asctime)s - %(name)s - %(levelname)s - %(message)s'loggers: all: handlers: [all] propagate: false tornado: handlers: [all] propagate: falsehandlers: 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.logroot: 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
其它类似信息

推荐信息