Python - 封装输出log类

#coding = utf-8
import logging
from tools import project_path
class MyLog:
    def my_log(self,msg,level):
        # 1.定义一个日志收集器
        my_logger = logging.getLogger('python')
        # 2.设定日志收集器收集的最小级别
        my_logger.setLevel('DEBUG')
        # 3.定义输出格式
        formatter = logging.Formatter("%(asctime)s-%(levelname)s-%(name)s-日志信息:%(message)s")
        # 4.创建自用的输出渠道
        ch = logging.StreamHandler()
        # 5.设定输出渠道输出的最小级别
        ch.setLevel('DEBUG')
        # 6.设定输出格式
        ch.setFormatter(formatter)

        fh = logging.FileHandler(project_path.log_path,encoding='utf-8')
        fh.setLevel('DEBUG')
        fh.setFormatter(formatter)
        # 7.三者结合
        my_logger.addHandler(ch)
        my_logger.addHandler(fh)

        # 收集日志
        if level =='DEBUG':
            my_logger.debug(msg)
        elif level == 'INFO':
            my_logger.info(msg)
        elif level == 'WARNING':
            my_logger.warning(msg)
        elif level == 'ERROR':
            my_logger.error(msg)
        elif level == 'CRITICAL':
            my_logger.critical(msg)

        # 8.关闭日志收集器
        my_logger.removeHandler(ch)
        my_logger.removeHandler(fh)

    def debug(self,msg):
        self.my_log(msg,'DEBUG')
    def info(self,msg):
        self.my_log(msg,'INFO')
    def warning(self,msg):
        self.my_log(msg,'WARNING')
    def error(self,msg):
        self.my_log(msg,'ERROR')
    def critical(self,msg):
        self.my_log(msg,'CRITICAL')

if __name__ == '__main__':
    # MyLog().debug('这是第一个')
    # MyLog().warning('这是第二个')
    # MyLog().info('这是第三个')
    MyLog().my_log('这是第而个','ERROR')

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秦朝胖子得加钱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值