Skip to main content

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

Logging levels, from least severe to most:

  • LOG_ALL: log everything

  • TRACE: fine-grained debugging messages

  • DEBUG: normal debugging

  • INFO: messages you usually don’t want to see

  • NOTICE (i.e. INFO5): non-error messages you usually want to see

  • WARNING: exceptional circumstances that might not be errors

  • ERROR: errors that occur, but are anticipated and handled

  • CRITICAL: fatal errors that lead to termination

  • LOG_OFF: turn off all logging

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

# nanolog use 'warn' instead of 'warning'
logger.warnfmt('{}, 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.warnppfmt('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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nanolog-0.1.3.tar.gz (16.1 kB view details)

Uploaded Source

Built Distribution

nanolog-0.1.3-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file nanolog-0.1.3.tar.gz.

File metadata

  • Download URL: nanolog-0.1.3.tar.gz
  • Upload date:
  • Size: 16.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for nanolog-0.1.3.tar.gz
Algorithm Hash digest
SHA256 a85ef8e441b76bba9daf7ba7b1fdafc79097f91c80b4cd2ef16f08c5eb38f433
MD5 a206bc723038838663d4fd7e3c815dbb
BLAKE2b-256 0b46f7161ded9682d7b341cf6399bb43c4341b2b0a40bef2f2c6a760b9f99b4a

See more details on using hashes here.

File details

Details for the file nanolog-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for nanolog-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 173d95aaa3ede2e2521b4d1f742fdd2462ab16e0b0bc478cf42dc800d1f1cb21
MD5 c7d1c24c570575e761e108aea0471ae2
BLAKE2b-256 946cc629e4b4bc3474aae6b60974f61d83849fd6343b007a095f613f8c693654

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page