Skip to main content

Logging configuration for flask application

Project description

version

Advanced Logging configuration for flask application based on yaml or json file. See logging.config

NOTE: If you want to use flask_logify.handlers.FlaskSysLogHandler you must init this extension with an app context.

The dump of request or response are made by builders, there are two concrete implementations:

  1. LogTextBuilder: message as plain text (configurable).

  2. LogJSONBuilder: message as json format.

You can create your own builder by extending class LogBuilder. In order to get the correct remote address you can override LogBuilder.get_remote_address method or you can inject a function in LogBuilder constructor.

See example usage in example/text.py.

FlaskLogging as a decorator attribute with which you can disable log messages for a specific route, passing a logging filter to it. For example you want disable log for health check endpoint. See example/text.py.

Quickstart

Install flask_logify using pip:

$ pip install Flask-Logify

Example usage

An example of log file configuration is under example folder.

Only yaml or json format are supported.

from flask import Flask
from flask_logify import FlaskLogging


app = Flask(__name__)
app.config['LOG_FILE_CONF'] = 'log.yaml'
app.config['LOG_LOGGER_NAME'] = 'flask-development'

logging = FlaskLogging()
with app.app_context():
    logging.init_app(app)

app.run()

Go to http://127.0.0.1:5000/ and see log messages like configured

Configuration

Base configuration keys:

  1. LOGGING: (default: None) dict logging configuration

  2. LOG_FILE_CONF: (default: None) absolute path of configuration file (has priority on LOGGING)

  3. LOG_APP_NAME: (default: flask) the PROGRAM field of the log messages

  4. LOG_LOGGER_NAME: (default: flask-development) usually is {LOG_APP_NAME}-{FLASK_ENV}

  5. REQUEST_ID_HEADER: (default: X-Request-ID) request id header key

  6. LOG_BUILDER: (default: text) log builder implementation (text, json)

Text and JSON builder configuration keys:

  1. LOG_REQ_HEADERS: (default: []) request headers to dump always

  2. LOG_RESP_HEADERS: (default: []) response headers to dump always

  3. LOG_REQ_SKIP_DUMP: (default: not DEBUG) if true dump of request body and headers are skipped

  4. LOG_RESP_SKIP_DUMP: (default: DEBUG) if true dump of response body and headers are skipped

Text builder only:

  1. LOG_RESP_FORMAT: (default: “OUTGOING RESPONSE for {address} at {path}: {level} STATUS {status}n{headers}n{body}n”) log message format for response

  2. LOG_REQ_FORMAT: (default: “{address} {method} {scheme} {path}n{headers}n{body}n”) log message format for request

License MIT

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-Logify-2.4.1.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

Flask_Logify-2.4.1-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file Flask-Logify-2.4.1.tar.gz.

File metadata

  • Download URL: Flask-Logify-2.4.1.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.7

File hashes

Hashes for Flask-Logify-2.4.1.tar.gz
Algorithm Hash digest
SHA256 b5d94547bb0b22aecba092abd3632c09960e948ba451bf4229d7808089344d24
MD5 a60aeffca20843e9957220b63e07a0a8
BLAKE2b-256 e16ef4d6cc1c0d12ef5398e9e6a537b6f50bc133da0f7a1b25e211f9e0e3269c

See more details on using hashes here.

File details

Details for the file Flask_Logify-2.4.1-py3-none-any.whl.

File metadata

  • Download URL: Flask_Logify-2.4.1-py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.7

File hashes

Hashes for Flask_Logify-2.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 99a98583984ba069e1f7e8f109b5bb2e0af5276e5abe8f346e9cde1578845de2
MD5 0a75690dba110d04120e4fbfb18c3a30
BLAKE2b-256 4613940c53d1d405c96c9a924dca5dec70d769b4a01bab53cc96f7ed3d26e727

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