• python loggin模块封装


    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    import logging
    import time
    from util import get_path
    
    class TestLog(object):
        '''
    封装后的logging
        '''
    
        def __init__(self, logger=None):
            '''
                指定保存日志的文件路径,日志级别,以及调用文件
                将日志存入到指定的文件中
            '''
    
            # 创建一个logger
            self.logger = logging.getLogger(logger)
            self.logger.setLevel(logging.DEBUG)
            # 创建一个handler,用于写入日志文件
            # self.log_time = time.strftime("%Y_%m_%d_")
            # self.log_path = get_path.log_file_path
            self.log_name = get_path.log_file_path
    
            fh = logging.FileHandler(self.log_name, encoding='utf-8')  # 追加模式  这个是python2的
            # fh = logging.FileHandler(self.log_name, 'a', encoding='utf-8')  # 这个是python3的
            fh.setLevel(logging.INFO)
    
            # 再创建一个handler,用于输出到控制台
            ch = logging.StreamHandler()
            ch.setLevel(logging.INFO)
    
            # 定义handler的输出格式
            formatter = logging.Formatter(
                '[%(asctime)s] %(filename)s->%(funcName)s line:%(lineno)d [%(levelname)s]: %(message)s ')
            fh.setFormatter(formatter)
            ch.setFormatter(formatter)
    
            # 给logger添加handler
            self.logger.addHandler(fh)
            self.logger.addHandler(ch)
    
            #  添加下面一句,在记录日志之后移除句柄
            # self.logger.removeHandler(ch)
            # self.logger.removeHandler(fh)
            # 关闭打开的文件
            fh.close()
            ch.close()
    
        def getlog(self):
            return self.logger
    
    if __name__ == '__main__':
        log = TestLog().getlog()  # 放在class上面
    
        log.info("log message")
    越努力越幸运
  • 相关阅读:
    HashMap与Hashtable的区别
    List集合、泛型、装箱拆箱
    关于集合
    统一建模语言
    自定义栈
    学习笔记
    如何优化limit
    mysql五大存储引擎
    [离散数学]2016.12.15周四作业
    [离散数学]2016.12.9周四作业
  • 原文地址:https://www.cnblogs.com/lfang/p/14928263.html
Copyright © 2020-2023  润新知