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.3-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 490433158eff679f8785eb0ad5a9916695e59fddf418848a961ed96c4b247c5c |
|
MD5 | 37addae0065d058e54b842645ce321e9 |
|
BLAKE2b-256 | b8f120d167396bca144ae87de9c65b7c2fd27002b1c7d893c685afe20904fc12 |