• Python Logger类,保存本地文件并在console打印


    import logging
    import time
    import os
    
    
    
    class Logger:
        def __init__(self, logger_name):
            # 创建一个logger
            self.logger = logging.getLogger(logger_name)
    
            self.logger.setLevel(logging.DEBUG) # 需要记录的日志级别
            basedir = os.path.abspath(os.path.dirname(__file__))
            log_path = os.path.join(basedir, 'logs', time.strftime("%F"))  # 日志根目录 ../logs/yyyy-mm-dd/
    
            if not os.path.exists(log_path):
                os.mkdir(log_path)
    
            # # 创建一个handler,用于写入日志文件
            log_name = os.path.join(log_path, 'out.log')
            fh = logging.FileHandler(log_name, encoding='utf-8', mode='a')  # 指定utf-8格式编码,避免输出的日志文本乱码
            fh.setLevel(logging.DEBUG) # 需要写入的日志级别
    
            # 创建一个handler,用于将日志输出到控制台
            ch = logging.StreamHandler()
            ch.setLevel(logging.INFO) # 需要到控制台的日志级别
    
            # 定义handler的输出格式
            formatter = logging.Formatter('%(asctime)s-%(name)s-%(levelname)s-%(message)s')
            fh.setFormatter(formatter)
            ch.setFormatter(formatter)
    
            # 给logger添加handler
            self.logger.addHandler(fh)
            self.logger.addHandler(ch)
    
        def get_log(self):  # 定义一个函数,回调logger实例"""
            return self.logger
    
        def shutdown(self):
            for handler in self.logger.handlers[:]:
                self.logger.removeHandler(handler)
    

    使用

    import Logger
    
    logger = Logger('TYPE_NAME') # 初始化
    
    # 不同级别的日志
    logger.get_log().info('MESSAGE')
    logger.get_log().warning('MESSAGE')
    logger.get_log().error('MESSAGE')
    logger.get_log().critical('MESSAGE')
    logger.get_log().debug('MESSAGE')
    
    logger.shutdown() # 释放logger.注意,如果不释放日志内会出现冗余记录
    
  • 相关阅读:
    thinkphp--标签库
    thinkphp中的参数绑定
    thinkphp3.2.3子查询中遇到的错误
    开篇马克
    BST树、B-树、B+树、B*树
    linux shell编程之变量和bash配置文件(第一篇)
    linux awk进阶篇
    linux awk(gawk)
    linux sed命令
    linux basic
  • 原文地址:https://www.cnblogs.com/bionexit/p/14772488.html
Copyright © 2020-2023  润新知