(1)日志系统代码
common_logging.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import logging
import logging.config
import os
from unipath import Path
logging.config.fileConfig(Path(Path(__file__).ancestor(1), './conf/logging.conf'), \
defaults=None, disable_existing_loggers=True)
conf目录下的配置:
logging.conf
[loggers]
keys=root
[handlers]
keys=consoleHandler, fileHandler
[formatters]
keys=root
[logger_root]
#handlers=consoleHandler, fileHandler
handlers=fileHandler
propagate=True
[handler_consoleHandler]
class=StreamHandler
level=ERROR
#level=DEBUG
formatter=root
args=(sys.stdout,)
[handler_fileHandler]
#class=handlers.TimedRotatingFileHandler
class=handlers.WatchedFileHandler
#level=WARN
level=ERROR
interval=midnight
backupCount=5
formatter=root
#args=('./logs/my.log', 'd',1, 0, 'utf-8',False, False,)
args=('./logs/my.log', 'a', 'utf-8', )
[formatter_root]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
~
ps.
class=handlers.WatchedFileHandler 由于tornado使用多进程,如果使用自动切割日志,跨天时日志会混乱,如果使用WatchedFileHandler,则只要定时拷贝日志,自己进行切割,就不会有问题。