Graylog middleware for Django.
Project description
django-graylog
A Django middleware for logging requests to Graylog.
Installation
pip install django-graylog
Using an HTTP/HTTPS requires the requests
module, which can be included with pip install django-graylog[http].
Parsing user agents requires the ua_parser
module, which can be included with pip install django-graylog[ua].
All optional libraries may be included using pip install django-graylog[all].
Configuration
Simply add django_graylog.GraylogMiddleware to your MIDDLEWARE setting, after
django.middleware.common.CommonMiddleware. By default, the middleware does nothing
unless GRAYLOG_ENDPOINT is set (see below).
Settings
GRAYLOG_ENDPOINT- An HTTP, HTTPS, UDP, or TCP endpoint to send GELF logs to. For example:http://yourserver:12201/gelfudp://yourserver:12201tcp://yourserver:12201
GRAYLOG_NODE- The middleware sends a_nodefield that defaults tosocket.gethostname. Set this to override it.GRAYLOG_LEVEL- The defaultlevelto send for log entries. Defaults to 6 (INFO).GRAYLOG_TIMEOUT- Timeout (in seconds) for sending log entries to Graylog. Defaults to0.25seconds.GRAYLOG_FIELDS- Extra fields to send for each request (not prefixed with underscores). Defaults to{}.GRAYLOG_HEADERS-Trueto include all HTTP request headers (except sensitive headers likeAuthorizationandCookie- see below), otherwise a list of headers to be included. Defaults to[].GRAYLOG_EXCLUDE_HEADERS- A list of headers to exclude whenGRAYLOG_HEADERSisTrue. Defaults to["authorization", "cookie", "proxy-authorization"].GRAYLOG_USER_AGENT-Trueto parse out User-Agent header into separate fields using ua_parser (default isFalse).GRAYLOG_REFERER-Trueto parse out the referer domain (default isFalse) into a separate field.GRAYLOG_USERNAME-Trueto includerequest.user.get_username()(default isFalse).GRAYLOG_TIMING-Trueto include request timing information (the default),Falseto disable.GRAYLOG_FILTERS- A dictionary of filters to exclude records from being logged. Each key is a field name, and each value is a list of regegular expressions to exclude. For example:{"host": [r"media.example.com"]}- Skips logging of requests to themedia.example.comdomain.{"path": [r"^/_"]}- Skips logging of requests to paths starting with_.{"ip": "192\.168\."}- Skips logging of requests from192.168.*addresses. Using a string instead of a list works for a single regular expression.
GRAYLOG_EXCEPTION_MESSAGES- Whether to include exception messages in data sent to Graylog. Setting toFalsewill strip the last line from stack traces (in case the line includes a literal message), and not send the_exception_messagefield. Defaults toTrue.GRAYLOG_FACILITY- Sent as_facility, and used as the default logger name for logging messages sent viarequest.graylog.GRAYLOG_TIMESTAMP- Whether to include atimestampfield in data sent to Graylog. Setting toFalsemeans Graylog will infer the current time when it receives log entries. Defaults toTrue.GRAYLOG_IP- Whether to include the IP address of requests. Defaults toTrue.
Advanced Usage
In addition to the standard logging middleware, django_graylog installs an object on
your request objects (request.graylog) that has standard logging methods for recording
per-request logs. You may also set custom keys on this object
(request.graylog["key"] = "value") that will be included in log entries. For example:
def homepage(request):
request.graylog["user"] = request.user.user_name
request.graylog.info("Rendered homepage for {user}", user=request.user.user_name)
If you want standard Python logging calls during a request to be logged into Graylog as
well, django_graylog comes with a GraylogRequestHandler logging handler that tracks
the current request and associates logging to it.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_graylog-0.8.0.tar.gz.
File metadata
- Download URL: django_graylog-0.8.0.tar.gz
- Upload date:
- Size: 6.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
313dc8be1aa272080803a194fae83449f9297ce0ee7268e0fdd092fc580a2172
|
|
| MD5 |
c76ca1da5a52017a214865d71d440c1a
|
|
| BLAKE2b-256 |
fff0a66c4e9214831b7308509877f9ef67726915aefa533c80a96703db0125a5
|
File details
Details for the file django_graylog-0.8.0-py3-none-any.whl.
File metadata
- Download URL: django_graylog-0.8.0-py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9fdac3bf754d042e253be687c5eb1fc095a7c7a532b88a2d9789f797daf8e14a
|
|
| MD5 |
1032f74627f7bd97d6020502299153cf
|
|
| BLAKE2b-256 |
1fae19274b8f0db80bc221d322382aefd7835ea5b436d74da4b662acc753603e
|