python log 二次封装

logging模块普通使用思路

1、创建一个日志记录器logger对象
2、设置日志级别
3、创建一个写文件的日志处理器handler,并设置日志输出格式
4、创建一个输出到控制台的日志处理器handler,并设置日志输出格式

上代码

# -*- coding: utf-8 -*-
import logging

# 创建日志记录器logger
my_logger = logging.Logger('first_logger')

# 定义日志处理器handler,决定把日志发到文件中
handler_text = logging.FileHandler('../run.log',encoding='utf-8')

# 设置日志级别和输出格式
handler_text.setLevel(logging.INFO)
my_format = logging.Formatter("时间:%(asctime)s - 日志等级:%(levelname)s - 路径:%(pathname)s - 行号:%(lineno)s - 日志内容:%(message)s")
handler_text.setFormatter(my_format)
# 将日志处理器handler添加到对应的日志记录器logger中
my_logger.addHandler(handler_text)

# 定义日志处理器handler,决定把日志发到控制台
handler_console = logging.StreamHandler()
# 设置日志级别和输出格式
handler_console.setLevel(logging.DEBUG)
you_format = logging.Formatter("时间:%(asctime)s - 日志等级:%(levelname)s - 路径:%(pathname)s - 行号:%(lineno)s - 日志内容:%(message)s")
handler_console.setFormatter(you_format)

# 将日志处理器handler添加到对应的日志记录器logger中
my_logger.addHandler(handler_console)

# 使用logger:
my_logger.debug("debug,调试日志")
my_logger.info("info,普通日志")
my_logger.warning("waring,警告日志")
my_logger.error("error,错误日志")
my_logger.critical("critical,严重、危险日志")

控制台输出

log文件

封装代码:

# -*- coding: utf-8 -*-
import logging

class LoggerHander():
    # 创建一个logger
    def __init__(self):
        # 创建一个日志记录器logger对象
        self._logger = logging.Logger('first_logger')
        # 设置日志级别
        self._logger.setLevel(logging.INFO)
        # 设置format格式
        self._format = logging.Formatter("时间:%(asctime)s - 日志等级:%(levelname)s - 路径:%(pathname)s - 行号:%(lineno)s - 日志内容:%(message)s")
        # 将日志过滤器handler添加到logger上完成日志的输出
        self._logger.addHandler(self.get_file_handler('../run.log'))
        self._logger.addHandler(self.get_console_handler())

    # 创建一个写文件的handler
    def get_file_handler(self,filename=None):
        '''返回一个handler'''
        # 获取一个handler
        filehandler = logging.FileHandler(filename=filename,encoding='utf-8')
        # 设置日志格式
        filehandler.setFormatter(self._format)
        # 返回一个handler对象
        return filehandler

    # 创建一个打印在控制台的handler
    def get_console_handler(self):
        # 获取一个handler
        console_handler = logging.StreamHandler()
        # 设置日志格式
        console_handler.setFormatter(self._format)
        # 返回一个handler对象
        return console_handler

    def logger(self):
        return self._logger


def logger():
    l = LoggerHander().logger()
    return l

if __name__ == '__main__':
    logger=logger()
    logger.info("内容一")

打印结果

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值