Skip to main content

Python formatter for working with Logstash json filters.

Project description

Python logging formatter for creating log entries in a JSON logstash-friendly format.

Supports renaming of python default logging fields to logstash friendly names (e.g: renaming asctime to @timestamp)

LogstashFormatter can receive the following arguments:

  • fmt, list or tuple containing the fields to include in each entry. Defaults to [“asctime”, “levelname”, “filename”, “funcName”, “msg”, “exc_info”].

  • datefmt, date format string to be passed to formatTime(). Defaults to ISO8601 time format.

  • rename, dictionary containing mapping of { key: new_key } to be renamed. Defaults to { “asctime”: “@timestamp” }.

  • version, version as for the @version attribute used in Logstash. Defaults to “1”.

Sample output

{
  "@timestamp": "2016-09-28T16:24:24,799",
  "@version": "1",
  "exc_info": null,
  "filename": "<ipython-input-21-de248ad5b09c>",
  "funcName": "<module>",
  "levelname": "INFO",
  "message": "This is a normal message to be logged"
}

Usage

Add LogstashFormatter as the formatter of your handler, as usual:

self.logger = logging.getLogger()
self.handler = logging.StreamHandler()
self.handler.setFormatter(LogstashFormatter())
self.logger.addHandler(self.handler)

Using in Django

Include logstash formatter in your settings file:

LOGGING = {
    'formatters': {
        'logstash': {
            '()': 'logstash_formatter.LogstashFormatter',
            'format': ("asctime", "levelname", "name", "lineno", "message",
                       "pathname", "module", "funcName", "process",),
            'datefmt': '%Y-%m-%dT%H:%M:%S',
            'rename': {
                'asctime': '@timestamp',
            },
            'version': '1'
        },
    }
}

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

logstash-python-formatter-0.1.2.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

logstash_python_formatter-0.1.2-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file logstash-python-formatter-0.1.2.tar.gz.

File metadata

  • Download URL: logstash-python-formatter-0.1.2.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.4

File hashes

Hashes for logstash-python-formatter-0.1.2.tar.gz
Algorithm Hash digest
SHA256 87730d89a69185b7ca54942a414a01c66a7f8f74f63bff57587de8fed6bf00a6
MD5 10f367b75d02c4aa6bfd73d294da4a29
BLAKE2b-256 8d74bf92e08db3dc5ecbc367aea5665b81ddfb03a4b22a497ef9159bb9cbaa77

See more details on using hashes here.

File details

Details for the file logstash_python_formatter-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: logstash_python_formatter-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.4

File hashes

Hashes for logstash_python_formatter-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 85534ada37a9c8580154fa0c955ca13bb6de62d86be134be46c9ee11b06aa6e4
MD5 f919aba757e511ee19a5325f3174f9b8
BLAKE2b-256 e5c559e378b435c19e9a910c4361afa001076a27764d77e0b4b3a120b2d98757

See more details on using hashes here.

Supported by

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