跳转到主要内容

终极Python彩色日志记录器,支持用户自定义颜色

项目描述

https://travis-ci.org/laysakura/rainbow_logging_handler.png?branch=master Latest PyPI version

终极Python彩色日志记录器。

用法

通用用法示例

http://github.com/laysakura/rainbow_logging_handler/raw/master/doc/screenshot.png

此脚本运行效果如上截图。

import sys
import logging
from rainbow_logging_handler import RainbowLoggingHandler

def main_func():
    # setup `logging` module
    logger = logging.getLogger('test_logging')
    logger.setLevel(logging.DEBUG)
    formatter = logging.Formatter("[%(asctime)s] %(name)s %(funcName)s():%(lineno)d\t%(message)s")  # same as default

    # setup `RainbowLoggingHandler`
    handler = RainbowLoggingHandler(sys.stderr, color_funcName=('black', 'yellow', True))
    handler.setFormatter(formatter)
    logger.addHandler(handler)

    logger.debug("debug msg")
    logger.info("info msg")
    logger.warn("warn msg")
    logger.error("error msg")
    logger.critical("critical msg")

    try:
        raise RuntimeError("Opa!")
    except Exception as e:
        logger.exception(e)

if __name__ == '__main__':
    main_func()

Django中使用

http://github.com/miohtama/rainbow_logging_handler/raw/master/doc/screenshot_django.png

Django是一个流行的Python网络框架。

将以下内容放入您的settings.py中,以获得更愉快的开发服务器控制台输出

# Add this to your settings.py
if DEBUG:
    # Install rainbow logging handler when running Django in develoment mode
    import sys
    LOGGING["handlers"]["rainbow"] = {"level": "DEBUG", "class": "rainbow_logging_handler.RainbowLoggingHandler", 'stream': sys.stderr}
    LOGGING["loggers"]['']["handlers"].append("rainbow")

更多关于配置Django日志记录器的信息.

特性

按列着色日志

如上图所示,每个日志列都有不同的颜色。即使默认着色也应该使日志阅读更容易。

用户自定义颜色

每一列的颜色都是可自定义的

formatter = logging.Formatter('%(pathname)s [%(module)s] - %(funcName)s:L%(lineno)d : %(message)s')
handler   = RainbowLoggingHandler(
    sys.stderr,
    # Customizing each column's color
    color_pathname=('black', 'red'  , True), color_module=('yellow', None, False),
    color_funcName=('blue' , 'white', True), color_lineno=('green' , None, False),
)
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.info("hello custom world")

上面的代码产生如下输出。

http://github.com/laysakura/rainbow_logging_handler/raw/master/doc/screenshot-custom-color.png

高可移植性

Linux、BSD、Mac OS和Windows均应得到支持。

支持Python 2.6或更高版本及Python 3.2或更高版本运行。

安装

从PyPI安装

$ pip install rainbow_logging_handler

从Github仓库安装

$ git clone https://github.com/laysakura/rainbow_logging_handler.git
$ cd rainbow_logging_handler
$ ./setup.py install

作者

Mikko Ohtamaa <mikko@opensourcehacker.com>,Sho Nakatani <lay.sakura@gmail.com>

特别感谢10sr提供的建议。

许可证

这是一款免费且不受限制的公有领域软件。更多详细信息,请参阅 <http://unlicense.org/> 或附带的 LICENSE.txt 文件。

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪一个,请了解更多关于 安装包 的信息。

源代码发行版

rainbow_logging_handler-2.2.2.zip (15.1 kB 查看哈希值)

上传时间 源代码

支持