我是靠谱客的博主 活泼外套,最近开发中收集的这篇文章主要介绍logging 模块和 colorlog 模块,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 最近写的自动化工具需要日志,使用了 logging 模块和 colorlog 模块,塑造了颜色丰富的控制台输出,非常喜欢。

我在代码中,通过对 logging 模块的 logger 进行自己的定制,得到我想要的 logger,既能在控制台彩色输出,也能在我指定的文件中动态存储日志信息。

import os
import sys
import platform
import sys,ctypes
import logging
import colorlog
from smb.SMBConnection import SMBConnection

Log_File = 'athena_log.log'
exit_word = r' Athena run exit! Athena run exit! Athena run exit!'.center(115,"*")
Athena_Version = "0.9_20220916"
GUI_CMD = "CMD"

Debug = False


def isadmin():
    if(ctypes.windll.shell32.IsUserAnAdmin()==1):
        return(True)
    else:
        return(False)

class LogHandler(object):
    def __init__(self, filename, level=logging.INFO):
        self.logger = logging.getLogger(filename)
        self.log_colors_config = {
            'DEBUG': 'cyan',
            'INFO': 'green',
            'WARNING': 'yellow',
            'ERROR': 'red',
            'CRITICAL': 'red',
        }
        formatter = colorlog.ColoredFormatter(
            '%(log_color)s%(asctime)s  %(filename)s [line:%(lineno)d] %(levelname)s: %(message)s',
            log_colors=self.log_colors_config)

        # 设置日志级别
        self.logger.setLevel(level)
        # 往屏幕上输出
        console_handler = logging.StreamHandler()

        # 输出到日志文件
        if(isadmin()):
            file_handler = logging.FileHandler(filename=filename, mode='a', encoding='utf8')
            file_formatter = logging.Formatter('%(asctime)s  %(filename)s [line:%(lineno)d] %(levelname)s: %(message)s')
            # 设置写入文件的格式
            file_handler.setFormatter(file_formatter)

        # 设置屏幕上显示的格式
        console_handler.setFormatter(formatter)


        # 把对象加到logger里
        self.logger.addHandler(console_handler)
        if(isadmin()):
            self.logger.addHandler(file_handler)

my_loghandler = LogHandler(Log_File, level=logging.DEBUG)


def get_logger():
    return (my_loghandler)

下面是使用的情况

 

最后

以上就是活泼外套为你收集整理的logging 模块和 colorlog 模块的全部内容,希望文章能够帮你解决logging 模块和 colorlog 模块所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部