• python日志模板


    import sys
    sys.path.append("./")
    import os
    import datetime
    import logging
    import platform
    from logging.handlers import RotatingFileHandler
    #linux日志路径
    LIUNX_LOG_PATH='/store/logs/xxxxxx/'
    logger_dict={}
    
    
    
    def _log(file_path,pform2):
        """
        1.创建logger
        2.创建handler
        3.定义formatter
        4.给handler添加formatter
        5.给logger添加handler
        :param file_path: 日志路径
        :param pform2: 日志文件名字
        :return:
        """
        LOG_FILENAME = file_path + '/spiderPy.log'
        #获取具有指定名称(通道名称)的日志记录器,并创建它
        logger  = logging.getLogger(pform2)
        #设置日志等级
        logger.setLevel(logging.DEBUG)
        #RotatingFileHandler 将日志记录到一组文件的处理程序,该处理程序将从一个文件切换到另一个文件当当前文件达到一定大小时,切换到下一个
        handler = RotatingFileHandler(LOG_FILENAME, encoding='UTF-8', maxBytes=1024 * 1024 * 100, backupCount=999)
        # 设置日志等级
        handler.setLevel(logging.DEBUG)
        # %(asctime)s字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
        #%(levelname)s文本形式的日志级别
        #%(funcName)s调用日志输出函数的函数名
        #%(lineno)s调用日志输出函数的语句所在的代码行
        #%(message)s用户输出的消息
        # %(name)sLogger的名字
        # %(levelno)s数字形式的日志级别
        # %(pathname)s调用日志输出函数的模块的完整路径名,可能没有
        # %(filename)s调用日志输出函数的模块的文件名
        # %(module)s调用日志输出函数的模块名
        # %(created)f当前时间,用UNIX标准的表示时间的浮 点数表示
        # %(relativeCreated)d输出日志信息时的,自Logger创建以 来的毫秒数
        # %(thread)d线程ID。可能没有
        # %(threadName)s线程名。可能没有
        # %(process)d进程ID。可能没有
        #日志的输出格式及方式做相关配置
        logging_format = logging.Formatter('%(asctime)s - %(levelname)s - %(filename)s - %(funcName)s - %(lineno)s - %(message)s')
        #给handler添加formatter
        handler.setFormatter(logging_format)
        #给logger添加handler
        logger.addHandler(handler)
        return logger
    
    
    def myLogger(pform):
    
        file_name = datetime.datetime.now().strftime('%Y-%m-%d')
        pform2 = str(datetime.datetime.now().strftime('%Y_%m_%d_'))+pform
    
        #根据操作系统选择路径
        if "windows" in platform.platform().lower():
            file_path = os.getcwd() + "/logs/" + pform + "/" + file_name
        else:
            file_path = LIUNX_LOG_PATH + pform + "/" + file_name
    
        #没路径肯定没当前文件路径日志对象
        if not os.path.exists(file_path):
            os.makedirs(file_path)
            logger_dict[pform]=_log(file_path,pform2)
        #有路径可能有日志对象
        else:
            #没有对象 创建日志对象
            if not logger_dict.get(pform):
                logger_dict[pform] = _log(file_path, pform2)
    
        return logger_dict[pform]
    
    def logInfo(pform,content):
        try:
            myLogger(pform).info(content)
        except:
            myLogger(pform).info(content)
    
    def logDebug(pform,cotent):
        try:
            myLogger(pform).debug(cotent)
        except:
            myLogger(pform).debug(cotent)
    
    def logError(pform,content):
        try:
            myLogger(pform).error(content)
        except:
            myLogger(pform).error(content)
    
    
  • 相关阅读:
    Java中final,finalize和finally的区别
    EJB
    sql server函数
    rollup和grouping函数
    Java关于抽象类能否被实例化的问题
    jdk
    点击导航文字,页面刷新后仍然是点击状态
    jquery实现全选和取消全选
    去掉required红色边框
    左侧菜单高度自适应右侧内容
  • 原文地址:https://www.cnblogs.com/pythonywy/p/12844889.html
Copyright © 2020-2023  润新知