Skip to main content

This is the seed-papertrail project.

Project description

https://img.shields.io/travis/praekeltfoundation/seed-papertrail.svg https://img.shields.io/pypi/v/seed-papertrail.svg Code Coverage seed-papertrail Docs

Some utilities to time things and log things.

>>> import logging
>>> formatter = logging.Formatter("%(asctime)s [%(threadName)-12.12s] [%(levelname)-5.5s]  %(message)s")
>>> logger = logging.getLogger('papertrail')
>>> consoleHandler = logging.StreamHandler()
>>> consoleHandler.setFormatter(formatter)
>>> logger.addHandler(consoleHandler)
>>> logger.setLevel(logging.DEBUG)

Usage as a function decorator

>>> from seed_papertrail.decorators import papertrail
>>> @papertrail.warn
... def testing(): print 1
...
>>> testing()
1
2017-01-24 11:16:02,100 [MainThread  ] [WARNI]  __main__.testing 0.000021:

One can also specify a custom log message and a sample size argument:

>>> @papertrail.warn('this is likely to explode', sample=0.5)
... def testing(): print 1
...
>>> testing()
1
>>> testing()
1
>>> testing()
1
2017-01-24 11:38:56,068 [MainThread  ] [WARNI]  __main__.testing 0.000018: this is likely to explode
>>> testing()
1
2017-01-24 11:38:59,628 [MainThread  ] [WARNI]  __main__.testing 0.000019: this is likely to explode
>>> testing()
1
>>>

Usage as a context manager

>>> from seed_papertrail.decorators import papertrail
>>> with papertrail.timer('hulloo') as l:
...     l.debug('more logging here!')
...     print 1
...
2017-01-24 11:32:23,109 [MainThread  ] [DEBUG]  more logging here!
1
2017-01-24 11:32:23,115 [MainThread  ] [DEBUG]  0.002581: hulloo, threshold:OK
>>>

You can also specify custom thresholds:

>>> with papertrail.timer('o_O', thresholds={'OK': (0, 0.1), 'FAIL': (0.1, 1000)}):
...     time.sleep(6)
...
2017-01-24 11:45:00,717 [MainThread  ] [DEBUG]  6.000664: o_O, threshold:FAIL

Addtionally the timer function allows one to specify the following keyword arguments:

  • level the logging level, defaults to DEBUG

  • logger the logger to log to, defaults to papertrail

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

seed-papertrail-1.5.0.tar.gz (8.9 kB view hashes)

Uploaded Source

Built Distributions

seed_papertrail-1.5.0-py3-none-any.whl (6.5 kB view hashes)

Uploaded Python 3

seed_papertrail-1.5.0-py2-none-any.whl (6.5 kB view hashes)

Uploaded Python 2

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