pi_portal.modules.configuration.logging.formatters.json.JsonFormatter
- class pi_portal.modules.configuration.logging.formatters.json.JsonFormatter(trace_id: str, *args: Any, **kwargs: Any)[source]
Bases:
JsonFormatterJSON log formatter.
- Parameters:
trace_id (str) – The unique uuid for this process instance.
- __init__(trace_id: str, *args: Any, **kwargs: Any) None[source]
- Parameters:
json_default – a function for encoding non-standard objects as outlined in http://docs.python.org/2/library/json.html
json_encoder – optional custom encoder
json_serializer – a
json.dumps()-compatible callable that will be used to serialize the log record.json_indent – an optional
json.dumps()-compatible numeric value that will be used to customize the indent of the output json.prefix – an optional string prefix added at the beginning of the formatted string
rename_fields – an optional dict, used to rename field names in the output. Rename message to @message: {‘message’: ‘@message’}
static_fields – an optional dict, used to add fields with static values to all logs
json_indent – indent parameter for json.dumps
json_ensure_ascii – ensure_ascii parameter for json.dumps
reserved_attrs – an optional list of fields that will be skipped when outputting json log record. Defaults to all log record attributes: http://docs.python.org/library/logging.html#logrecord-attributes
timestamp – an optional string/boolean field to add a timestamp when outputting the json log record. If string is passed, timestamp will be added to log record using string as key. If True boolean is passed, timestamp key will be “timestamp”. Defaults to False/off.
- add_fields(log_record: Dict[str, Any], record: LogRecord, message_dict: Dict[str, str | None]) None[source]
Add custom fields to the base JsonFormatter.
- Parameters:
log_record (Dict[str, Any]) – The Python object that will be converted to JSON.
record (LogRecord) – The Python LogRecord object generated.
message_dict (Dict[str, str | None]) – The existing message fields configuration.
- static converter(*args: float | None) struct_time[source]
Convert logging times to the current UTC time.
- Parameters:
args (float | None) – The logger’s local time is discarded.
- Returns:
A time struct of the current UTC time.
- Return type:
struct_time
- formatException(ei)
Format and return the specified exception information as a string.
This default implementation just uses traceback.print_exception()
- formatStack(stack_info)
This method is provided as an extension point for specialized formatting of stack information.
The input data is a string as returned from a call to
traceback.print_stack(), but with the last trailing newline removed.The base implementation just returns the value passed in.
- formatTime(record, datefmt=None)
Return the creation time of the specified LogRecord as formatted text.
This method should be called from format() by a formatter which wants to make use of a formatted time. This method can be overridden in formatters to provide for any specific requirement, but the basic behaviour is as follows: if datefmt (a string) is specified, it is used with time.strftime() to format the creation time of the record. Otherwise, an ISO8601-like (or RFC 3339-like) format is used. The resulting string is returned. This function uses a user-configurable function to convert the creation time to a tuple. By default, time.localtime() is used; to change this for a particular formatter instance, set the ‘converter’ attribute to a function with the same signature as time.localtime() or time.gmtime(). To change it for all formatters, for example if you want all logging times to be shown in GMT, set the ‘converter’ attribute in the Formatter class.
- parse()[source]
Parses format string looking for substitutions
This method is responsible for returning a list of fields (as strings) to include in all log messages.
- process_log_record(log_record)[source]
Override this method to implement custom logic on the possibly ordered dictionary.
- usesTime()
Check if the format uses the creation time of the record.