A JSON logger for map colonies project
Project description
json-logger
Dependencies
install python-json-logger
pip3 install python-json-logger
Usage Example
NOTICE: the example assumes that logger.py is in the same directory as your calling module, else a different import method should be used
import os, sys
from logger import JSONLogger
# logging config yaml file path
LOG_CONFIG_PATH = os.environ.get('LOG_CONFIG_PATH', 'log.yaml')
APP_NAME = 'my-service'
# there should be a formatter that uses these fields in configuration yaml (e.g. format: '%(timestamp)s %(service)s')
additional_constant_fields = {'service': APP_NAME}
# NOTICE: there should be a matching logger name in configuration yaml (e.g. main-debug)
log = JSONLogger('main-info', LOG_CONFIG_PATH, additional_constant_fields).get_logger()
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')
Example Configuration YAML
version: 1
formatters:
brief:
format: '%(message)s'
json:
format: '%(timestamp)s %(service)s %(loglevel)s %(message)s'
class: logger.CustomJsonFormatter
handlers:
console:
class: logging.StreamHandler
formatter: json
stream: ext://sys.stdout
file:
class : logging.handlers.RotatingFileHandler
formatter: json
filename: logfile.log # log files full path
maxBytes: 5242880 # 5 MB
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for MapColoniesJSONLogger-0.0.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7de1634deb660e1cd99be29f928edfb63995940a554e06e80ce007face1135d7 |
|
MD5 | 2fd3c40abd54ff5e1610ebed667d4c72 |
|
BLAKE2b-256 | 406bf4a805d3b648c4793c0a8495a828f93a2fcf879f793ec63b79fe5a2bbc72 |
Close
Hashes for MapColoniesJSONLogger-0.0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a8b4d0cda4f521cd58bc2451052a895c618c6bf777d03ee8a5f7f1e7de1ce60 |
|
MD5 | d63c25b3e829ae9334f891fa0236be20 |
|
BLAKE2b-256 | 64510206cdd1e731b804b76043d4b7a52d8871f00f75f586a662c6312b559476 |