python 设置日志级别输出渠道/设置日志输出格式

# 日志级别 debug info waring error critical
#从左 往右越来越严重
#root logger  收集日志的容器 如果你不定义一个logger 那么就默认使用root logger
#输出渠道  handlers 渠道  控制台console  文本:file_handler  渠道默认是控制台
#pre-defined  format 按照提前设置好的格式进行输出  级别: 日志收集器的名字:日志信息
import logging,os
class logger:
    def logger(self, level, msg):
        logger = logging.getLogger("qm")
        logger.setLevel("DEBUG")
        ch = logging.StreamHandler()  # 创建一个输出到控制台的渠道
        formatter = logging.Formatter('%(asctime)s-'
                                      '%(levelname)s-'
                                      '%(filename)s-'
                                      '[line:%(lineno)d]-'
                                      '%(name)s-'
                                      '日志信息:%(message)s'
                                      )
        root_path = os.path.abspath(os.path.dirname(__file__)).split('shippingSchedule')[0]
        fh = logging.FileHandler(root_path + "/log.txt", encoding="utf-8")  # 设置输出到文件
        ch.setFormatter(formatter)
        fh.setFormatter(formatter)
        # 设置收集级别
        fh.setLevel("DEBUG")
        ch.setLevel("DEBUG")
        # 日志收集器与输出渠道对接
        logger.addHandler(fh)
        #
        logger.addHandler(ch)

        if (level == "DEBUG"):
            logger.debug(msg)
        elif level == 'INFO':
            logger.info(msg)
        elif level == 'WARNING':
            logger.warning(msg)
        elif level == 'ERROR':
            logger.error(msg)
        else:
            logger.critical(msg)

        # 每次收集日志后记得移除掉日志收集器
        logger.removeHandler(ch)
        logger.removeHandler(fh)
        ch.close()
        fh.close()  # 需要手动关闭收集器 不关闭就会在调用您的时候就会报文件未关闭  我也不知道为什么 哪位大佬知道么

    def debug(self, msg):
        self.logger("DEBUG", msg)

    def info(self, msg):
        self.logger("INFO", msg)

    def warning(self, msg):
        self.logger("WARNING", msg)

    def error(self, msg):
        self.logger("ERROR", msg)
if __name__ == '__main__':
    logger=MyLogger()
    logger.debug("12231232")

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值