Source code for elevaso_spine.log.fmt_json
"""
.. module:: fmt_json
:platform: Unix, Windows
:synopsis: Format log messages in JSON format
Best practices retrieved from
https://docs.python.org/3/howto/logging-cookbook.html
"""
# Python Standard Libraries
import json
import logging
# 3rd Party Libraries
# Project Specific Libraries
from elevaso_spine.log.fmt import BaseFormatter
LOGGER = logging.getLogger(__name__)
[docs]
class JsonFormatter(BaseFormatter):
"""Custom class for logging in Json format"""
[docs]
def format_func(self, val: dict, **kwargs) -> \
str: # pylint: disable=unused-argument
"""Final output formatting function
Args:
val (dict): Dictionary of values to output in JSON
Returns:
str: JSON string
"""
return json.dumps(val, default=str)
output_func = format_func