zoukankan      html  css  js  c++  java
  • python 日志组件

    日志组件:

    import logging
    import logging.handlers
    import os
    
    
    class logs(object):
        def __init__(self):
            self.logger = logging.getLogger("")
            # 设置输出的等级
            LEVELS = {'NOSET': logging.NOTSET,
                      'DEBUG': logging.DEBUG,
                      'INFO': logging.INFO,
                      'WARNING': logging.WARNING,
                      'ERROR': logging.ERROR,
                      'CRITICAL': logging.CRITICAL}
            # 创建文件目录
            logs_dir = "logs"
            if os.path.exists(logs_dir) and os.path.isdir(logs_dir):
                pass
            else:
                os.mkdir(logs_dir)
            # 修改log保存位置
            logfilename = 'ind.log'
            logfilepath = os.path.join(logs_dir, logfilename)
            rotatingFileHandler = logging.handlers.TimedRotatingFileHandler(filename=logfilepath,
                                                                       when="D",
                                                                       interval=1)
            # 设置输出格式
            formatter = logging.Formatter('[%(asctime)s] [%(levelname)s] %(message)s', '%Y-%m-%d %H:%M:%S')
            rotatingFileHandler.setFormatter(formatter)
            # 控制台句柄
            console = logging.StreamHandler()
            console.setLevel(logging.NOTSET)
            console.setFormatter(formatter)
            # 添加内容到日志句柄中
            self.logger.addHandler(rotatingFileHandler)
            self.logger.addHandler(console)
            self.logger.setLevel(logging.NOTSET)
    
        def info(self, message):
            self.logger.info(message)
    
        def debug(self, message):
            self.logger.debug(message)
    
        def warning(self, message):
            self.logger.warning(message)
    
        def error(self, message):
            self.logger.error(message)
    

      

    import logging

    logger = logging.getLogger(__name__)

    log = logs()
  • 相关阅读:
    Java线程--LockSupport使用
    Java线程--Callable使用
    Java线程--BlockingQueue使用
    Java线程--CopyOnWrite容器使用
    Java线程--ReentrantLock使用
    Java线程--Atomic原子类使用
    Java线程--ThreadPoolExecutor使用
    Java线程--ForkJoinPool使用
    自己动手搭建SSM
    为什么选择SSM+Redis框架开发模式?
  • 原文地址:https://www.cnblogs.com/tianboblog/p/12002465.html
Copyright © 2011-2022 走看看