python-logging日志模块,以及封装实现

前言

是Python内置的标准模块,主要用于输出运行日志

基本语法


import logging

# # logging模块默认设置的日志级别是warning,而debug和info的级别是低于warning的,所以不会打印这两种日志信息
# logging.basicConfig(level=logging.DEBUG)
# logging.debug("debug信息")
# logging.info("info信息")
# logging.warning("warning信息")
# logging.error("error信息")
# logging.critical("critical信息")

# 创建一个logger对象,并且设置默认的日志级别
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)

# 创建日志格式对象
format = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')

#创建FileHandler对象---输出文件日志
fp = logging.FileHandler('test.log','a',encoding='utf-8')

# fp.setLevel(logging.DEBUG)
fp.setFormatter(format)
logger.addHandler(fp)


# 创建流对象----控制台输出日志
sp = logging.StreamHandler()
sp.setFormatter(format)
logger.addHandler(sp)
logger.setLevel(logging.DEBUG)

logger.info('文件记录日志')

封装log实现


import os
import logging
import time
from common.configutils import config_utils


current_path = os.path.dirname(__file__)
log_output_path = os.path.join( current_path,'..', config_utils.LOG_PATH  )

class LogUtils:
    def __init__(self,log_path=log_output_path):
        # 创建一个logger对象,并且设置默认的日志级别(必须设置默认日志级别)
        log_level = int(config_utils.LOG_LEVER)
        self.logger = logging.getLogger()   #创建日志对象
        self.logger.setLevel(log_level)
        self.log_name = os.path.join(log_path, 'ApiTest_%s.log' % time.strftime('%Y_%m_%d'))

        # 创建日志格式对象
        format = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s') #创建日志格式对象
        # 创建FileHandler对象
        fp = logging.FileHandler(self.log_name, 'a', encoding='utf-8')
        fp.setLevel(log_level)
        fp.setFormatter(format)
        self.logger.addHandler(fp)

        # 创建流对象
        sp = logging.StreamHandler()
        sp.setFormatter(format)
        self.logger.addHandler(sp)
        self.logger.setLevel(log_level)

        sp.close()
        fp.close()

    def get_log(self):
        return self.logger


if __name__ == '__main__':
    logger = LogUtils().get_log()
    logger.debug("debug测试写日志功能")
posted @ 2020-08-05 10:10  我是海底的咸鱼  阅读(655)  评论(1编辑  收藏  举报