用python编写一个更好看好用的日志库

2023-11-16

相信现在很多做自动化测试、开发,一般用的都是python的logging来记录日志,但是,logging确实不是很好看,只有一个红色的,在控制台中也不好分辨,那能不能自己写一个好看点的呢?我已经写好一个了,需要的可以直接下载安装试试,下面来说下我是怎么思考怎么写的。

pip install luckylog

 首先,需要知道的知识点储备:

1、sys._getframe的使用

2、装饰器的编写

3、使用'\033[ \033[0m'来设置字体颜色

4、threading递归锁

好了,以上就是我们需要的额外知识点了,现在我们开始写吧。

首先,我想要定义四种方式的日志,success、erro、warning、tip,success返回是绿色,erro返回是红色,warning是黄色、tip是默认或者蓝色,前期我们只要直接能打印,然后能够放入文件中,开始第一步,定义几种类型的消息返回形式:

class LogConfig():
    __num = 2
    def conf_success(self,*args,**kwargs) -> str:
        now_time = time.strftime('%Y-%m-%d %H:%M:%S')
        def_name = sys._getframe(self.__num).f_code.co_name
        line = sys._getframe(self.__num).f_lineno
        file_path = sys._getframe(self.__num).f_code.co_filename

        return '(p≧w≦q) === {} FILE_PATH=({}) FUNC-({}) <SUCCESS> LINE-{} *MSG==√{} ==='.format(now_time, file_path,def_name, line, args,kwargs)
    def conf_erro(self,*args,**kwargs) -> str:
        now_time = time.strftime('%Y-%m-%d %H:%M:%S')
        def_name = sys._getframe(self.__num).f_code.co_name
        line = sys._getframe(self.__num).f_lineno
        file_path = sys._getframe(self.__num).f_code.co_filename
        return 'φ(゜▽゜*)♪ === {} FILE_PATH=({}) FUNC-({}) <ERRO> LINE-{} *MSG==×{} ==='.format(now_time,file_path,def_name,line,args,kwargs)
    def conf_warning(self,*args,**kwargs) -> str:
        now_time = time.strftime('%Y-%m-%d %H:%M:%S')
        def_name = sys._getframe(self.__num).f_code.co_name
        line = sys._getframe(self.__num).f_lineno
        file_path = sys._getframe(self.__num).f_code.co_filename
        return 'o(* ̄▽ ̄*)ブ === {} FILE_PATH=({}) FUNC-({}) <WORNING> LINE-{} *MSG==!{} ==='.format(now_time,file_path,def_name, line, args,kwargs)
    def conf_normal(self,*args,**kwargs) -> str:
        now_time = time.strftime('%Y-%m-%d %H:%M:%S')
        def_name = sys._getframe(2).f_code.co_name
        line = sys._getframe(2).f_lineno
        file_path = sys._getframe(self.__num).f_code.co_filename
        return 'm( ̄︶ ̄)↗ === {} FILE_PATH=({}) FUNC-({}) <TIP> LINE-{} *MSG=={} ==='.format(now_time,file_path,def_name, line, args,kwargs)

定义了这四种类型,包含当前时间、函数名字、代码行号、文件路径,当我们调用的时候,就可以直接返回我们需要的字符串,然后下一步,我们将这个输出的东西,存入一个文档,顺便给这些字符串整点颜色看看

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用python编写一个更好看好用的日志库 的相关文章

随机推荐