Skip to main content

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/test.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 ident of the record used by syslog

  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}{headers}{body}”) log message format for response

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

License MIT

Metadata

Release files for Flask-Logify 2.4.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Flask-Logify 2.4.5
File Size Uploaded
Flask-Logify-2.4.5.tar.gz 8.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Flask-Logify 2.4.5
File Interpreter ABI Platform
Flask_Logify-2.4.5-py3-none-any.whl Python 3 none any Details

Total release size: 20.2 kB

Release files / Flask-Logify-2.4.5.tar.gz

Download URL Flask-Logify-2.4.5.tar.gz
Size 8.8 kB
Tags Source
SHA-256 checksum
How to use checksums
db098af6ef6ac78d9a24468d630fab8ac19c4d1e384031f9452bba8c0f650ecf
BLAKE2b-256 checksum
How to use checksums
991696e889fd2d907f62d3e208c648f113c3c8448648cd1e05a50c1367b9a299
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

Release files / Flask_Logify-2.4.5-py3-none-any.whl

Download URL Flask_Logify-2.4.5-py3-none-any.whl
Size 11.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c714125d8d45b6f3ce2944a4641086afd6528cd2bba8a035d9e14787d8f5bdff
BLAKE2b-256 checksum
How to use checksums
d74312ac34c471bd490a81549be5473e2a0a3475c5017480be358a0aeaff35f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

Release history Release notifications | RSS feed

This release

2.4.5 This release

2 release files

2.4.4

1 release file

2.4.3

1 release file

2.4.2

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.0

1 release file

2.2.3

1 release file

2.2.2

1 release file

2.2.1

1 release file

2.2.0

1 release file

2.1.0

1 release file

2.0.1

1 release file

2.0.0

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.2

1 release file

1.1.1

1 release file

1.1.0

2 release files

1.0.1

2 release files

1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page