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)
相关文章
相关标签/搜索