python logging on steroids, lightweight and convenient
Project description
nanolog
Life is too short. Use nanolog to make logging and printing simpler!
nanolog features a convenient logger API built on top of python’s builtin logging.
The library also ships with many printing utilities. Python 3 only.
Installation
From stable package on PyPI
pip install nanolog
From bleeding edge master branch
pip install git+git://github.com/SurrealAI/nanolog.git
nanolog.Logger
import nanolog as nl
logger = nl.Logger.create_logger(
'main',
stream='out',
level='debug',
)
logger.info('my', 3, 'world', 1/16.) # just like print
# >>> my 3 world 0.0625
logger.warningfmt('{}, we are {:.3f} miles from {planet}',
'Houston', 17/7, planet='Mars') # just like str.format
# >>> Houston, we are 2.429 miles from Mars
Use a trailing number to indicate level, the larger the higher priority
logger.info7(...) # info level 7
logger.errorfmt8(...) # error level 8
Display a banner line or block
logger.infobanner3('my', 3, 'world', symbol='!', banner_len=16, banner_lines=3)
prints:
!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!! my 3 world !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!
Of course, banner method also comes with a str.format version
logger.debugbannerfmt(
'{3}&{0}&{2}&{1}', 'a', 'b', 'c', 'd',
symbol='<*_*>', banner_len=16, banner_lines=6
)
displays:
<*_*><*_*><*_*><*_*><*_*> <*_*><*_*><*_*><*_*><*_*> <*_*><*_ d&a&c&b <*_*><*_ <*_*><*_*><*_*><*_*><*_*> <*_*><*_*><*_*><*_*><*_*> <*_*><*_*><*_*><*_*><*_*>
Prettyprint support (uses the thirdparty lib prettyprinter)
logger.infopp7(...)
logger.warningppfmt('my warning {:.3f} format {:.2f} string', 1/7., 1/9.)
Logger config
TODO
Time formatting
TODO
Printing utililites
prettyprint
Better alternatives for the pprint module in python standard lib.
pprint: takes variable number of objects, just like print()
pprintstr: return string instead of printing to IO stream
pprintfmt: just like print('...'.format)
pprintfmtstr: return string instead of printing to IO stream
Convenient aliases (pp stands for prettyprint; a single p means normal print)
short |
original |
---|---|
pf |
printfmt |
pferr |
printfmterr |
pstr |
printstr |
perr |
printerr |
pp |
pprint |
ppstr |
pprintstr |
ppf |
pprintfmt |
ppfstr |
pprintfmtstr |
TODO: talk about global configs
Print redirection context managers
PrintRedirection
PrintFile
PrintSuppress
PrintString
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.