2025年3月25日 星期二 甲辰(龙)年 月廿四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

Python日志输出不同颜色字体并打印到日志文件

时间:09-11来源:作者:点击数:19

Python日志输出不同颜色字体并打印到日志文件

  • # -*- coding: utf-8 -*-
  • '''
  • @Time : 2023-04-03 14:57
  • @Author : AnTi
  • @File : test.py
  • '''
  • import pandas as pd
  • pd.set_option('display.max_columns', None)
  • pd.set_option('display.width', 10000)
  • pd.set_option('display.max_colwidth', 10000)
  • pd.set_option('display.max_rows', None)
  • import logging
  • import colorlog
  • import os
  • import time
  • # 设置相对路径
  • ProjectPath = os.path.split(os.path.split(os.path.realpath(__file__))[0])[0]
  • LogsPath = os.path.join('./', 'logs\log_{0}'.format(time.strftime('%Y-%m-%d_%H-%M-%S', time.localtime())))
  • # 设置控制台打印的颜色
  • log_colors_config = {
  • 'DEBUG': 'cyan',
  • 'INFO': 'black',
  • 'WARNING': 'yellow',
  • 'ERROR': 'red',
  • 'CRITICAL': 'red',
  • }
  • class MyLogs:
  • """
  • 在其他文件调用方法
  • 1. from . import MyLogs 把这个文件导入
  • 2. self.log = MyLogs() 实例化类
  • 3. self.log.info("想要打印到日志的话") 这个分五个等级
  • self.log.error("错误日志")
  • self.log.info('正常日志信息')
  • ......
  • 4. 使用两个格式,格式一打印到控制台,格式二打印到日志(使用格式一打印因为颜色会出现[30m日志[0m)
  • Python日志输出不同颜色字体并打印到日志文件
  • """
  • def mylog(self, level, msg):
  • logger = logging.getLogger('GuangDian_API')
  • logger.setLevel(logging.DEBUG)
  • formatter = colorlog.ColoredFormatter(
  • '%(log_color)s[%(asctime)s] [%(name)s] [%(levelname)s]: %(message)s',
  • log_colors=log_colors_config)
  • formatter2 = logging.Formatter('[%(asctime)s] [%(name)s] [%(levelname)s]: %(message)s')
  • sh = logging.StreamHandler() # 输出到控制台
  • sh.setLevel(logging.DEBUG)
  • sh.setFormatter(formatter) # 指定格式
  • fh = logging.FileHandler(LogsPath, encoding="utf-8")
  • fh.setLevel(logging.DEBUG)
  • fh.setFormatter(formatter2)
  • logger.addHandler(sh)
  • logger.addHandler(fh) # 输出到文件
  • if level == "DEBUG":
  • logger.debug(msg)
  • elif level == "INFO":
  • logger.info(msg)
  • elif level == "WARNING":
  • logger.warning(msg)
  • elif level == "ERROR":
  • logger.error(msg)
  • elif level == "CRITICAL":
  • logger.critical(msg)
  • logger.removeHandler(sh)
  • logger.removeHandler(fh)
  • fh.close() #不关闭会警告
  • def debug(self, msg):
  • self.mylog("DEBUG", msg)
  • def info(self, msg):
  • self.mylog("INFO", msg)
  • def warning(self, msg):
  • self.mylog("WARNING", msg)
  • def error(self, msg):
  • self.mylog("ERROR", msg)
  • def critical(self, msg):
  • self.mylog("CRITICAL", msg)
  • if __name__ == '__main__':
  • log = MyLogs()
  • log.debug("---测试开始----")
  • log.info("操作步骤")
  • log.warning("----测试结束----")
  • log.error("----测试错误----")
在这里插入图片描述
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门