python的logging模块

import logging
import logging.handlers
import os, time


class cnlog(object):
    def __init__(self):
        # 获得一个logger对象
        self.myLogger = logging.getLogger('mylogger')
        self.myLogger.setLevel(logging.DEBUG)

    def Init_log(self, log_path, log_name, base_path='Logs'):
        log_path = os.path.join(os.path.dirname(__file__), base_path, log_path)
        # log_path = os.path.dirname(__file__) + '/Logs/'
        log_path_isExist = os.path.isdir(log_path)
        print(log_path_isExist)
        if (log_path_isExist == False):
            os.makedirs(log_path)
        log_name = os.path.join(log_path, log_name)
        # 添加TimedRotatingFileHandler
        # 定义一个1秒换一次log文件的handler
        # 保留3个旧log文件
        fh = logging.handlers.TimedRotatingFileHandler(filename=log_name, when='S', interval=1, backupCount=3)
        # 设置日志等级
        fh.setLevel(logging.DEBUG)
        # 定义输出流header,用于输出到控制台
        ch = logging.StreamHandler()
        ch.setLevel(logging.DEBUG)
        # 设置日志格式
        formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
        fh.setFormatter(formatter)
        ch.setFormatter(formatter)
        # 为日志对象添加header
        self.myLogger.addHandler(fh)
        self.myLogger.addHandler(ch)
        self.myLogger.debug('Log config is done...')
        return self.myLogger


if __name__ == '__main__':

    obj = cnlog()
    log = obj.Init_log('task1', 'task1.log')

    while True:
        log.debug('hello')
        time.sleep(1)
posted @ 2019-12-16 19:22  Mr.Trees  阅读(161)  评论(0编辑  收藏  举报