Nice Log
########
.. image:: https://circleci.com/gh/rshk/nicelog.svg?&style=shield
:target: https://circleci.com/gh/rshk/nicelog
:alt: CircleCI build status
Provide formatters to nicely display colorful logging output on the console.
Fork this project on GitHub <https://github.com/rshk/nicelog>
_
Right now, it contains only one formatter, coloring log lines
depending on the log level and adding nice line prefixes containing
logger name, but future plans are to add more formatters and allow
better ways to customize them.
Installation
::
pip install nicelog
Quick usage
Since version 0.3
, nicelog comes with a helper function to quickly
set up logging for basic needs.
.. code-block:: python
from nicelog import setup_logging
setup_logging()
Or, if you want to include debug messages too:
.. code-block:: python
setup_logging(debug=True)
Advanced usage
.. code-block:: python
import logging
import sys
from nicelog.formatters import Colorful
# Setup a logger
logger = logging.getLogger('foo')
logger.setLevel(logging.DEBUG)
# Setup a handler, writing colorful output
# to the console
handler = logging.StreamHandler(sys.stderr)
handler.setFormatter(Colorful())
handler.setLevel(logging.DEBUG)
logger.addHandler(handler)
# Now log some messages..
logger.debug('Debug message')
logger.info('Info message')
logger.warning('Warning message')
logger.error('Error message')
logger.critical('Critical message')
try:
raise ValueError('This is an exception')
except:
logger.exception("An error occurred")
Example output
Here it is, in all its glory:
.. image:: .screenshots/nicelog-150408.png
:alt: Screenshot
The output format can be further customized, eg. if you want to reduce
colorfulness or verbosity.
Integrations
Django
I usually put something like this in my (local) settings:
.. code-block:: python
LOGGING['formatters']['standard'] = {
'()': 'nicelog.formatters.Colorful',
'show_date': True,
'show_function': True,
'show_filename': True,
'message_inline': False,
}
Changelog
v0.2
- More decoupling between "colorer" and "style"
- Support for pretty tracebacks (colorful + code context + locals)
- Added some tests
- Python3 support via six
v0.1.9
- Replaced
strftime(3)
conversion specifiers %F
and %T
aren't available on all platforms: replaced with long versions
%Y-%m-%d
and %H:%M:%S
.
v0.1.8
- Prevent failure in case the
TERM
environment variable is not set (PR #1)
v0.1.7
- Added support for
message_inline
argument. If set to False
,
messages will be displayed on their own line (useful when enabling a lot of
information)
v0.1.6
v0.1.5
- Added support for nicer colors in 256-color mode
- Removed dependency from termcolor (now shipping better implementation)