Skip to main content

Cloud Foundry Python Logging Support

Project description

This is a collection of support libraries for Python applications running on Cloud Foundry that serve two main purposes: provide (a) means to emit structured application log messages and (b) instrument web applications of your application stack to collect request metrics.

For details on the concepts and log formats, please look at the sibling project for java logging support.


  1. Lightweight, no dependencies. Support of Python 2.7 & 3.5.
  2. Compatible with the Python logging module. Minimal configuration needed.
  3. Emits JSON logs (format details).
  4. Supports correlation-id.
  5. Supports request instrumentation. Built in support for Flask 0.1x & Sanic 0.5.x. Extensible to support others.
  6. Includes CF-specific information (space id, app id, etc.) to logs.
  7. Supports adding extra properties to JSON log object.


Install the package with pip:

pip install sap_cf_logging


Setting up your application

Logging library needs to be initialized. Depending on you application type, different initialization is used. You should usually do this in your application entrypoint.

For CLI applications you just need to call cf_logging.init() once to configure the library. The library will try to configure future loggers to emit logs in JSON format.

If you are using one of the supported frameworks, check the Configuration section to see how to configure it.

Setting up the CloudFoundry environment

In order for your logs to appear in the Kibana dashboard, you have to create an application-logs service instance and bind it to your application.


After installation use the following guide to configure the Python cf logging library.


First import the cf_logging library and setup Flask logging on the application.

from cf_logging import flask_logging
app = flask.Flask(__name__)
flask_logging.init(app, logging.INFO)

Next use Python’s logging library

def root_route():
    logger = logging.getLogger('my.logger')'Hi')

    return 'ok'

Note the logs generated by the application


import sanic
import logging
from cf_logging import sanic_logging
from sanic.response import HTTPResponse
from cf_logging.core.constants import REQUEST_KEY,

app = sanic.Sanic('test.cf_logging')

async def two(request):
    extra = {REQUEST_KEY: request}
    logging.getLogger('my.logger').debug('Hi', extra = extra)
    return HTTPResponse(body='ok')

Note: With Sanic you need to pass the request with an extra parameter in the logging API. This is needed in order to get the correlation_id generated at the beginning of the request or fetched from the HTTP headers.


import cf_logging
import logging


logger = logging.getLogger("cli.logger")'hi')

Notes: - All loggers set up and created before the initialization of the Cloud Foundry logging library will be left untouched. - When using Flask and Sanic with the logging library a before and after request middleware is attached, and it will capture response times for each request.


For more examples please see the tests within the ./tests/ directory.


No external requirements are needed to run the package.



Known Issues


How to obtain support

Please open an issue on the github page.


Please create a pull request and briefly describe the nature of the change. Please submit a test case along with your pull request.

To-Do (upcoming changes)





Copyright (c) 2017 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file.

Project details

Release history Release notifications

History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


This version
History Node


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
sap_cf_logging-3.0.0-py2.py3-none-any.whl (24.0 kB) Copy SHA256 hash SHA256 Wheel py2.py3 Dec 7, 2017
sap_cf_logging-3.0.0.tar.gz (16.2 kB) Copy SHA256 hash SHA256 Source None Dec 7, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page