Skip to main content

logjson

Project description

https://img.shields.io/badge/stdlib--only-yes-green.svg https://travis-ci.org/cjrh/logjson.svg?branch=master https://coveralls.io/repos/github/cjrh/logjson/badge.svg?branch=master https://img.shields.io/pypi/pyversions/logjson.svg https://img.shields.io/github/tag/cjrh/logjson.svg https://img.shields.io/badge/install-pip%20install%20logjson-ff69b4.svg https://img.shields.io/pypi/v/logjson.svg https://img.shields.io/badge/calver-YYYY.MM.MINOR-22bfda.svg

logjson

Goal: easily generate structured JSON logging. logstash mode is optional.

import logging
import logjson
logger = logging.getLogger('blah')

handler = logging.StreamHandler()
handler.setFormatter(
    logjson.JSONFormatter(pretty=True)
)
logger.addHandler(handler)

logger.info('hi %s %s!', 'you', 'there')

Output:

{
  "name": "blah",
  "msg": "hi %s %s!",
  "args": [
    "you",
    "there"
  ],
  "levelname": "INFO",
  "levelno": 20,
  "pathname": "<snip>",
  "filename": "test_main.py",
  "module": "test_main",
  "exc_text": null,
  "stack_info": null,
  "lineno": 17,
  "funcName": "test_main",
  "created": 1511750128.6285746,
  "msecs": 628.5746097564697,
  "relativeCreated": 23.08201789855957,
  "thread": 139929130264384,
  "threadName": "MainThread",
  "processName": "MainProcess",
  "process": 18460,
  "message": "hi you there!",
  "created_iso": "2017-11-27T02:35:28.628575+00:00"
}

Logstash mode is only one param away:

logger = logging.getLogger('ls')
handler = logging.StreamHandler()
handler.setFormatter(
    logjson.JSONFormatter(pretty=True, logstash_mode=True)
)
logger.addHandler(handler)
logger.info('logstash test')

Output:

{
  "@message": "logstash test",
  "@source_host": "localhost.localdomain",
  "@timestamp": "2017-11-27T02:35:28.631275+00:00",
  "@fields": {
    "name": "ls",
    "msg": "logstash test",
    "args": [],
    "levelname": "INFO",
    "levelno": 20,
    "pathname": "<snip>",
    "filename": "test_main.py",
    "module": "test_main",
    "exc_text": null,
    "stack_info": null,
    "lineno": 42,
    "funcName": "test_logstash",
    "created": 1511750128.631275,
    "msecs": 631.274938583374,
    "relativeCreated": 25.782346725463867,
    "thread": 139929130264384,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 18460
  }
}

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

logjson-2020.3.1.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

logjson-2020.3.1-py2.py3-none-any.whl (7.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file logjson-2020.3.1.tar.gz.

File metadata

  • Download URL: logjson-2020.3.1.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.23.0

File hashes

Hashes for logjson-2020.3.1.tar.gz
Algorithm Hash digest
SHA256 fc38643fd9cd19954af65904bb9c036540f09fc2cf0be9b85f8ee5ede56ec9d4
MD5 fafe58a7bff0faa47c0e3fb9a696beb2
BLAKE2b-256 ec7592aa98289d5f058d111fd61e87ed417d02939c5f35f507dcbd0178244be3

See more details on using hashes here.

File details

Details for the file logjson-2020.3.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for logjson-2020.3.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 84b3ec165b0d998968e3f498662906daa909fefcd2eaf619199267de5e0fc4b4
MD5 7dba8eaa5e72be49f425365478223a2d
BLAKE2b-256 202350af92d9e9500a0d16e1ad06758663fd7cdc0071634b9a0ac0c275933cca

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