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
```python
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.
```python
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.
```python
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`:
```python
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.
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
```python
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.
```python
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.
```python
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`:
```python
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
rglogger-1.2.1.tar.gz
(4.9 kB
view hashes)
Built Distribution
Close
Hashes for rglogger-1.2.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 931ec1a9418650c7b95c3fa7eb523ccf0871c81e5a1020e4f8237144956349d9 |
|
MD5 | 45febc2b8edf9043e95c0e33dde899b5 |
|
BLAKE2b-256 | 786dbb31a510c747d855a8a88c725334d26506fab670a30e962ccb90ac12494d |