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.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8a3b5484d3a464c342cfdacc0dd4db3ebd1fee7258ab5c1ae9883c1d8651ffd |
|
MD5 | c4efc0947df0cb35cdf6e68e2621f21f |
|
BLAKE2b-256 | 5f5ef7038b634d67789443b9633fad808f5dfba9342a2b81faa5e8087ad3dedc |