Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/laysakura/rainbow_logging_handler
Ultimate Python colorized logger - https://pypi.python.org/pypi/rainbow_logging_handler
https://github.com/laysakura/rainbow_logging_handler
Last synced: 17 days ago
JSON representation
Ultimate Python colorized logger - https://pypi.python.org/pypi/rainbow_logging_handler
- Host: GitHub
- URL: https://github.com/laysakura/rainbow_logging_handler
- Owner: laysakura
- License: unlicense
- Created: 2013-12-03T08:56:43.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2021-07-08T15:54:59.000Z (over 3 years ago)
- Last Synced: 2024-09-18T10:47:28.625Z (about 2 months ago)
- Language: Python
- Size: 254 KB
- Stars: 79
- Watchers: 2
- Forks: 12
- Open Issues: 9
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGES.rst
- License: LICENSE.txt
Awesome Lists containing this project
README
rainbow_logging_handler
=======================
.. image:: https://travis-ci.org/laysakura/rainbow_logging_handler.png?branch=master
:target: https://travis-ci.org/laysakura/rainbow_logging_handler.. image:: https://pypip.in/v/rainbow_logging_handler/badge.png
:target: https://pypi.python.org/pypi/rainbow_logging_handler
:alt: Latest PyPI versionUltimate Python colorized logger.
.. contents:: :local:
Usage
-----Generic usage example
#####################
.. image:: http://github.com/laysakura/rainbow_logging_handler/raw/master/doc/screenshot.pngThis script runs like above screenshot.
.. code-block:: python
import sys
import logging
from rainbow_logging_handler import RainbowLoggingHandlerdef 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()Usage with Django
##################################.. image:: http://github.com/miohtama/rainbow_logging_handler/raw/master/doc/screenshot_django.png
`Django `_ is a popular Python web framework.
Put the following to your ``settings.py`` to get more pleasant development server console output::
# 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")`More about configuring loggers for Django `_.
Usage with Pyramid
#######################Set ``handler_console`` section in ``develop.ini``::
[handler_console]
class = rainbow_logging_handler.RainbowLoggingHandler
args = (sys.stderr,)
level = NOTSET
format = [%(asctime)s] %(name)s %(funcName)s():%(lineno)d\t%(message)sFeatures
--------Column-by-column colored log
############################
As apparent from above screenshot, each column of logs are differently colored.
Even default coloring should make log reading easier.User custom color
#################
Every column colors are **customizable**... code-block:: python
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")Above code produces output like this.
.. image:: http://github.com/laysakura/rainbow_logging_handler/raw/master/doc/screenshot-custom-color.png
High portability
################
Linux, BSD, Mac OS, and Windows are supposed to be supported.Runs with both Python 2.6 or higher & Python 3.2 or higher.
Install
-------Install from PyPI
#################.. code-block:: bash
pip install rainbow_logging_handler
Install from Github repo
########################.. code-block:: bash
pip install -e "git+https://github.com/laysakura/rainbow_logging_handler.git#egg=rainbow_logging_handler"
Author
------Mikko Ohtamaa , Sho Nakatani
And special thanks to `10sr `_ for advice.
License
-------This is free and unencumbered public domain software. For more information,
see or the accompanying `LICENSE.txt` file.