当前位置:   article > 正文

【已解决】python logging重复打印,解决不了你找我!!!_logging模块每次输出代码行数一样

logging模块每次输出代码行数一样

前言

本方案可以个性化定制,以及完美的解决重复打印问题,所有情况都适用!!!

多进程用logging经常会重复打印…网上很多解决办法试了都不好使,索性自己写得了。logging的颜色配置还需要下载color模块,突然发现print就支持颜色打印,然后sys模块又支持读取函数调用的行数和代码文件读取,这不就很简单了么。

代码

基于sys和print设计的logger

import datetime
import sys

class Logger:
    @classmethod
    def debug(cls, msg):
        ISOTIMEFORMAT = '%Y-%m-%d %H:%M:%S'
        theTime = datetime.datetime.now().strftime(ISOTIMEFORMAT)
        path = sys._getframe(1).f_code.co_filename.split("/")[-1]
        line = sys._getframe(1).f_lineno
        print("\033[1;35m [DEBUG]--> {}:{} {} {} \033[0m".format(path, line, theTime, msg))
    
    @classmethod
    def info(cls, msg):
        ISOTIMEFORMAT = '%Y-%m-%d %H:%M:%S'
        theTime = datetime.datetime.now().strftime(ISOTIMEFORMAT)
        path = sys._getframe(1).f_code.co_filename.split("/")[-1]
        line = sys._getframe(1).f_lineno
        print("\033[1;36m [INFO]--> {}:{} {} {} \033[0m".format(path, line, theTime, msg))

    @classmethod
    def error(cls, msg):
        ISOTIMEFORMAT = '%Y-%m-%d %H:%M:%S'
        theTime = datetime.datetime.now().strftime(ISOTIMEFORMAT)
        path = sys._getframe(1).f_code.co_filename.split("/")[-1]
        line = sys._getframe(1).f_lineno
        print("\033[1;34m [ERROR]--> {}:{} {} {} \033[0m".format(path, line, theTime, msg))
    
    @classmethod
    def warning(cls, msg):
        ISOTIMEFORMAT = '%Y-%m-%d %H:%M:%S'
        theTime = datetime.datetime.now().strftime(ISOTIMEFORMAT)
        path = sys._getframe(1).f_code.co_filename.split("/")[-1]
        line = sys._getframe(1).f_lineno
        print("\033[1;33m [WARNING]--> {}:{} {} {} \033[0m".format(path, line, theTime, msg))


Logger.debug("debug")
Logger.info("info")
Logger.error("error")
Logger.warning("warning")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

效果:
在这里插入图片描述
一个demo,可以自己优化显示的效果~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/963210
推荐阅读
相关标签
  

闽ICP备14008679号