Use Python's standard logging library to send messages to Raygun (https://raygun.io/)
Project description
raygun-logger
Use Python’s standard logging library to send messages to Raygun (https://raygun.io/)
Features
Implements a standard logging.Handler.
Automatic Django request logging.
Like any other handler, it can be filtered and have its level set.
Install
pip install rglogger
Usage
import logging
import rglogger
root_logger = logging.getLogger()
raygun_handler = rglogger.Handler('<your_api_key>')
root_logger.addHandler(raygun_handler)
Options
rglogger.Handler accepts the following arguments:
api_key: Your Raygun.io API key. Required.
raygun_endpoint: An alternative endpoint. Defaults to https://api.raygun.io/entries.
version: Your app’s version. Defaults to ''.
transmit_local_variables: Should we gather and send local variables with the message? Defaults to True.
transmit_global_variables: Should we gather and send global variables with the message? Defaults to True.
timeout: How long to wait on HTTP connections to the API, in seconds. Defaults to 30.
machine_name: A string representing the current host. Defaults to socket.gethostname().
tags: A list of strings with which to tag outgoing messages. Defaults to [].
Customization Examples
Log all uncaught exceptions.
from rglogger import Handler
raygun_handler = Handler('<your_api_key')
rglogger.catch_all(raygun_handler) # Hooks into sys.excepthook for you!
Log messages above a certain level.
The following example only logs errors and exceptions. Calls to logging.debug() will work, but won’t be sent to Raygun.
import logging
from rglogger import Handler
logger = logging.getLogger()
logger.addHandler(Handler('<your_api_key>', level=logging.ERROR))
Conditionally disable Raygun messages.
Want to disable logging to Raygun if a certain condition is met on a per-message basis? Add a filter to your Logger! Here’s an example which only logs to Raygun when Django’s DEBUG setting is set to False:
import logging
from rglogger import Handler
from django.conf import settings
logger = logging.getLogger()
logger.addFilter(lambda logrecord: not settings.DEBUG)
logger.addHandler(Handler('<your_api_key'))
License
MIT. See LICENSE for more details.
Contributions
Pull Requests welcome. Please try to adhere to PEP-8, but don’t worry about line lengths.
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.
Source Distribution
Built Distribution
Hashes for rglogger-1.3.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | acbcd45e0aa7c1c68c2a3a5750f4b12fd74bb8d60d315e47e6c13a19349e0cdd |
|
MD5 | ff892cea3279b019a9722f681dd1be14 |
|
BLAKE2b-256 | 6c68e87c6d712f2d6959281f8057e260a4e17f2078d900b937599e8097ff23eb |