Skip to main content

A JSON logger for map colonies project

Project description

json-logger

Installation

pip3 install mapcoloniesjsonlogger

Usage Example

from jsonlogger.logger import JSONLogger

APP_NAME = 'my-service'

# NOTICE: there should be a formatter that uses these fields in configuration dict (e.g. format: '%(timestamp)s %(service)s')
additional_constant_fields = {'service': APP_NAME}

# NOTICE: there should be a matching logger name in configuration dict (e.g. main-info)
log = JSONLogger('main-info', 
  config={'handlers': {'file': {'filename': 'Meow.log'}}}, # Optional, override values
  additional_fields=additional_constant_fields)

log.critical('system crashed')
log.error('incorrect input')
log.warn('not ready')
log.info('some info', extra={'action_id': 3}) # extra fields
log.debug('some info', extra={'action_id': 4}) # will not be logged because logger level set to INFO ('main-info')

Configuration Example

The configuration dict bellow is used by the package. For more information on logging configuration see logging.config docs

{
  'version': 1,
  'formatters': {
    'brief': {
      'format': '%(message)s'
    },
    'json': {
      'format': '%(timestamp)s %(service)s %(loglevel)s %(message)s',
      'class': 'jsonlogger.logger.CustomJsonFormatter'
    }
  },
  'handlers': {
    'console': {
      'class': 'logging.StreamHandler',
      'formatter': 'json',
      'stream': 'ext://sys.stdout'
    },
    'file': {
      'class': 'logging.handlers.RotatingFileHandler',
      'formatter': 'json',
      'filename': '/var/log/map-colonies/service.log',
      'maxBytes': 5242880,
      'backupCount': 10
    }
  },
  'loggers': {
    'main-debug': {
      'handlers': [
        'console',
        'file'
      ],
      'level': 'DEBUG'
    },
    'main-info': {
      'handlers': [
        'console',
        'file'
      ],
      'level': 'INFO'
    },
    'main-warning': {
      'handlers': [
        'console',
        'file'
      ],
      'level': 'WARNING'
    },
    'main-error': {
      'handlers': [
        'console',
        'file'
      ],
      'level': 'ERROR'
    },
    'main-critical': {
      'handlers': [
        'console',
        'file'
      ],
      'level': 'CRITICAL'
    }
  }
}

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

MapColoniesJSONLogger-0.0.18.tar.gz (3.1 kB view hashes)

Uploaded Source

Built Distribution

MapColoniesJSONLogger-0.0.18-py3-none-any.whl (3.9 kB view hashes)

Uploaded Python 3

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