python日誌模塊的封裝

背景:python

要日誌輸出到文件日誌

要天天記錄一個日誌文件。code


1)封裝model_logger.pyorm

#!/usr/bin/env 
# coding:utf-8 
import logging 
import logging.handlers


class Logger(logging.Logger):
    def __init__(self, filename=None):
        super(Logger, self).__init__(self)
        # 日誌文件名
        if filename is None:
            filename = 'my.log'
        self.filename = filename

        # 建立一個handler,用於寫入日誌文件 (天天生成1個,保留10天的日誌)
        fh = logging.handlers.TimedRotatingFileHandler(self.filename, 'D', 1, 10)
        fh.suffix = "%Y%m%d-%H%M.log"
        fh.setLevel(logging.DEBUG) 


        # 再建立一個handler,用於輸出到控制檯 
        ch = logging.StreamHandler() 
        ch.setLevel(logging.WARNING) 

        # 定義handler的輸出格式 
        formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(filename)s[line:%(lineno)d] - %(message)s') 
        fh.setFormatter(formatter) 
        ch.setFormatter(formatter) 

        # 給logger添加handler 
        self.addHandler(fh) 
        self.addHandler(ch) 


if __name__ == '__main__':
    pass


2)使用方法utf-8

from model_logger import Logger
logger = Logger('client_logs.log')

if __name__ == '__main__':
    try:
       dostring()
    except Exception,e:
        logger.error(e)
相關文章
相關標籤/搜索