Skip to main content

Configure Graylog logging handlers and middleware for your Flask app.

Project description

Flask-Graylog2

PyPI version

Fork of github.com/underdogio/flask-graylog with additional patches and features.

This is a Flask extension that allows you to configure a Graylog GELF UDP logging handler as well as some middleware to log every request/response pair to Graylog.

See also:

Installation

You can install it with pip:

$ pip install Flask-Graylog2

Usage

You only need to import and initialize your app

# Import dependencies
from flask import Flask
from flask_graylog import Graylog

# Configure app and Graylog logger
app = Flask(__name__)
graylog = Graylog(app)

# Log to graylog
graylog.info("Message", extra={"extra": "metadata",})

# Use Graylog log handler in another logger
import logging

logger = logging.getLogger(__name__)
logger.addHandler(graylog.handler)
logger.info("Message")

Configuration options

The following options can be use to configure the graylog logger.

from flask import Flask
from flask_graylog import Graylog

app = Flask(__name__)

# Use configuration from `app`
app.config["GRAYLOG_HOST"] = "10.1.1.1"
graylog = Graylog(app)

# Provide configuration
config = {"GRAYLOG_HOST": "10.1.1.1"}
graylog = Graylog(app, config=config)
  • GRAYLOG_HOST - the host to send messages to [default: 'localhost']
  • GRAYLOG_PORT - the port to send messages to [default: 12201]
  • GRAYLOG_FACILITY - the facility to report with [default: 'flask']
  • GRAYLOG_EXTRA_FIELDS - whether or not to include the extra data from each message [default: True]
  • GRAYLOG_ADD_DEBUG_FIELDS - whether extra python debug fields should be added to each message [default: True]
  • GRAYLOG_CONFIGURE_MIDDLEWARE - whether to setup middleware to log each response [default: True]

Example message format

{
    "_process_name": "MainProcess",
    "_request": {
        "content_length": "",
        "remote_addr": "127.0.0.1",
        "headers": {
            "upgrade_insecure_requests": "1",
            "connection": "keep-alive",
            "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
            "dnt": "1",
            "host": "localhost:5000",
            "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36",
            "accept_language": "en-US,en;q=0.8,ms;q=0.6",
            "cache_control": "max-age=0",
            "accept_encoding": "gzip, deflate, sdch"
        },
        "path_info": "/",
        "content_type": "",
        "query_string": "",
        "method": "GET"
    },
    "level": 6,
    "_logger": "flask_graylog",
    "timestamp": 1460502169.950895,
    "_pid": 6010,
    "facility": "flask",
    "_function": "after_request",
    "_thread_name": "Thread-1",
    "host": "voltaire.local",
    "version": "1.0",
    "file": "Flask-Graylog/flask_graylog.py",
    "full_message": "Finishing request for \"GET http://localhost:5000/\" from -",
    "line": 130,
    "_response": {
        "headers": {
            "content_length": "6",
            "content_type": "text/html; charset=utf-8"
        },
        "time_ms": 0,
        "status_code": 200
    },
    "_flask": {
        "view_args": {},
        "endpoint": "root"
    },
    "short_message": "Finishing request for \"GET http://localhost:5000/\" from -"
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Flask-Graylog2-1.2.2.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

Flask_Graylog2-1.2.2-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file Flask-Graylog2-1.2.2.tar.gz.

File metadata

  • Download URL: Flask-Graylog2-1.2.2.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.23.0

File hashes

Hashes for Flask-Graylog2-1.2.2.tar.gz
Algorithm Hash digest
SHA256 813be5073c00c9802e1188d0c6eadcc09c30004e97c305b26d0c0652af228bed
MD5 ffc35f723029738760282ce866d10bc2
BLAKE2b-256 d16ec233fdd4aa75f69ed24d159a3cefc13a8dc946037b9a0ae0adc9f27b35b9

See more details on using hashes here.

File details

Details for the file Flask_Graylog2-1.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for Flask_Graylog2-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 eb50d47c6c8c5693321f60ddf349699fa360c3561fe0a4eb26d0cac7d607ec6c
MD5 51ec80d17ba601d8c80d08a6f78f1450
BLAKE2b-256 8fef5cee7db1e0fee5d4722dbe7eff82e1e5cd2c82523d040b08d1336b49be0c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page