pycharm 终端打印彩色日志并记录到文件中

pycharm 终端打印彩色日志并记录到文件中

Python 换源

用户目录下创建.pip目录
创建pip.ini 文件

[global]

timeout = 60

index-url = http://pypi.douban.com/simple

trusted-host = pypi.douban.com

安装color 库

pip install colorlog

pip install colorlog
Defaulting to user installation because normal site-packages is not writeable
Collecting colorlog
  Downloading colorlog-6.7.0-py2.py3-none-any.whl (11 kB)
Collecting colorama
  Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)
Installing collected packages: colorama, colorlog
Successfully installed colorama-0.4.6 colorlog-6.7.0

[notice] A new release of pip available: 22.3.1 -> 23.0.1
[notice] To update, run: python.exe -m pip install --upgrade pip

代码

import ctypes
import logging
import colorlog

Log_File = 'athena_log.log'

Debug = False


def is_admin():
    if ctypes.windll.shell32.IsUserAnAdmin():
        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 is_admin():
            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)
            self.logger.addHandler(file_handler)

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

        # 把对象加到logger里
        self.logger.addHandler(console_handler)


def myLog():
    my_loghandler = LogHandler(Log_File, level=logging.DEBUG)
    my_loghandler.logger.info("113")
    my_loghandler.logger.debug("113")
    my_loghandler.logger.warning("113")
    my_loghandler.logger.error("113")
    my_loghandler.logger.critical("113")


if __name__ == '__main__':
    myLog()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值