美文网首页学习
Python3 彩色日志包

Python3 彩色日志包

作者: thepoy | 来源:发表于2021-05-21 22:05 被阅读0次

安装

pip install colorful-logger

使用

1 默认 logger

可以直接使用默认的logger实例输出日志,默认的日志等级是warning

from colorful_logger.logger import logger

with logger:
  logger.debug("This is a debug message.")
  logger.info("This is a info message.")
  logger.warning("This is a warning message.")
  logger.error("This is a error message.")
  logger.critical("This is a critical message.")
  logger.fatal("This is a fatal message.")

如你所见,logger需要在with语句中执行,因为本包使用的是QueueListener调用日志输出,使用logger输出日志前需要调用start方法,使用结束后需要调用stop方法,我将这两个方法封装到了with语句中,非特殊场景下,不需要单独调用startstop方法。

如果调用了start方法,一定要在调用日志后后执行stop方法

default logger

2 自定义 logger

也可以自定义name、日志等级、是否在终端显示、是否保存日志到文件:

from colorful_logger.logger import get_logger, DEBUG

logger = get_logger(name="sample_logger", level=DEBUG, file_path="./test.log")

with get_logger(name="sample_logger", level=DEBUG, file_path="./test.log", file_colorful=True) as logger:
  logger.debug("This is a debug message.")
  logger.info("This is a info message.")
  logger.warning("This is a warning message.")
  logger.error("This is a error message.")
  logger.critical("This is a critical message.")
  logger.fatal("This is a fatal message.")

with语句外输出日志时可能会有意外情况,达不到预期结果。

custom logger

日志文件./test.log内容(示例,与上图信息不一致):

�[35m[DEBUG] �[0m�[34m2021-06-05 20:13:26�[0m  �[36msample_logger - �[0mThis is a debug message.
�[32m[INFO]  �[0m�[34m2021-06-05 20:13:26�[0m  �[36msample_logger - �[0mThis is a info message.
�[33m[WARN]  �[0m�[34m2021-06-05 20:13:26�[0m  �[36msample_logger - �[0mThis is a warning message.
�[31m[ERROR] �[0m�[34m2021-06-05 20:13:26�[0m  �[33mtest.py:11�[0m  �[36msample_logger - �[0mThis is a error message.
�[31m[FATAL] �[0m�[34m2021-06-05 20:13:26�[0m  �[33mtest.py:12�[0m  �[36msample_logger - �[0mThis is a critical message.
�[31m[FATAL] �[0m�[34m2021-06-05 20:13:26�[0m  �[33mtest.py:13�[0m  �[36msample_logger - �[0mThis is a fatal message.

输出到文件的日志默认不是彩色日志。

如果你需要在文件中保存彩色日志,将file_colorful参数设置为True即可,本例中保存的就是彩色日志。

彩色日志文件的作用也只有一个,就是在终端查看实时日志:

tail -f test.log
# 或
cat test.log

这样查看的日志才是彩色的。

FATALCRITICAL本就是影响程序运行的严重错误,而 python 默认的日志管理器中此方法与其他方法没有什么区别,这让我觉得莫名其妙,在本包中,我在fatal方法中加入了sys.exit(1)用来退出程序。如果在程序出现严重错误时不想退出程序,可以调用critical方法。

get_logger方法:

def get_logger(
    name: Optional[str] = None,
    level: int = logging.WARNING,
    show: bool = True,
    file_path: Optional[str] = None,
    file_colorful: bool = False,
) -> Logger: ...
  • name logger 实例名,可以在不同的实例对象调用日志时为日志命名
  • level 日志等级
  • show 是否在终端中显示。如果你想用此彩色日志包的话,通常是想在终端显示的吧
  • file_path 是否保存到文件。默认是None,当其不是None时,会保存到对应的文件中
  • file_colorful 保存到文件的日志是否为彩色,默认为 False,以 python 默认的日志格式保存

3 子 logger

定义完一个logger后,还想用此logger的除name外的所有参数输出日志,这时就需要使用child_logger方法生成子 logger,子 logger 需要在父 logger 的with语句中执行:

from colorful_logger import get_logger, child_logger
from colorful_logger.logger import DEBUG

# parent logger
logger = get_logger(name="sample_logger", level=DEBUG, file_path="./test.log")

with logger:
  logger.error("parent error")
  l1 = child_logger("l1", logger)
  l1.error("l1 error")
  l1.fatal("l1 fatal")

子 logger 除了 name 与父 logger 不同,其他均相同,也不会输出第三方库的日志。

子 logger 在父 logger 的with语句中执行并不意味着一定在with语句中直接调用,在with语句中的某个函数中执行就可以,如:

# main.py
from colorful_logger import get_logger
from colorful_logger.logger import DEBUG

from other_file import test

# parent logger
logger = get_logger(name="sample_logger", level=DEBUG, file_path="./test.log")

with logger:
  test()
# other_file.py

test_logger = child_logger("test_logger", logger)

def test():
  test_logger.error("test error")

相关文章

  • Python3 彩色日志包

    安装 使用 1 默认 logger 可以直接使用默认的logger实例输出日志,默认的日志等级是warning: ...

  • 简单的 Golang 多色日志包

    比较简约的多色日志包,没有特别多的功能,仅提供在终端输出彩色日志的功能。 使用 在go.mod文件中添加log包:...

  • centos 安装python3+pip3

    python3 装包 python3 -m pip install xxxPython2装包, python2 -...

  • Ubuntu下安装python

    首先安装python3依赖的包 然后安装python3即可

  • 三、python和Selenium环境搭建(mac)

    一、Python3 安装 下载Python3安装包,默认安装即可 Python3 默认安装路径: /Library...

  • nginx+uwsgi部署django/flask

    部署django 1.安装所需工具包 2.CentOS7安装python3 下载python3软件包 解压安装 设...

  • 包彩色饺子

    前两天,给小侄女和老妈看网上别人晒出来的彩色饺子,红色的,绿色的,黄色的,还有白色加绿色的像白菜似的饺子。看着五颜...

  • Mac 安装python3

    通过homebrew安装python,运行brew search python3搜索到python3安装包后,运行...

  • Python虚拟环境

    安装Python包 配置virtualenvwrapper环境(Python3) Virtualenvwrappe...

  • Superset安装部署

    Superset的安装部署 1.1、安装Python3的环境 前置条件:安装Python3环境准备的包: yum ...

网友评论

    本文标题:Python3 彩色日志包

    本文链接:https://www.haomeiwen.com/subject/zkygjltx.html