GoogleLogFormatter#

class scikitplot.sp_logging.GoogleLogFormatter(datefmt='%Y-%m-%d %H:%M:%S', default_time_format='%Y-%m-%d %H:%M:%S', default_msec_format='%s,%03d', backend=None, use_datetime=True)[source]#

A custom logging formatter inherited from Formatter that formats log messages in a Google-style format:

>>> # Google-style format
>>> `YYYY-MM-DD HH:MM:SS.mmmmmm logger_name log_level message`
Parameters:
datefmtstr, optional

Date format for asctime. Default is ‘%Y-%m-%d %H:%M:%S’.

default_time_formatstr, optional

Default time format. Default is ‘%Y-%m-%d %H:%M:%S’.

default_msec_formatstr, optional

Default millisecond format. Default is ‘%s,%03d’.

backend{‘json’, ‘pprint’}, optional

Backend to use for formatting the log output. Default is None.

use_datetimebool, optional

Whether to include microseconds in the timestamp using datetime. Default is True.

Parameters:
  • datefmt (str)

  • default_time_format (str)

  • default_msec_format (str)

  • backend (Optional[str])

  • use_datetime (Optional[bool])

See also

logging.Formatter

logging Formatter.

Notes

This formatter outputs logs in a structured format with the following fields if any:

  • asctime: The timestamp of the log entry.

  • levelname: The log level (e.g., DEBUG, INFO, WARNING).

  • name: The name of the logger.

  • thread: The thread ID.

  • filename: The name of the file generating the log entry.

  • lineno: The line number where the log entry was generated.

  • message: The log message.

converter([seconds]) -> (tm_year,tm_mon,tm_mday,tm_hour,tm_min, tm_sec,tm_wday,tm_yday,tm_isdst)#

Convert seconds since the Epoch to a time tuple expressing local time. When ‘seconds’ is not passed in, convert the current time instead.

default_msec_format = '%s,%03d'#
default_time_format = '%Y-%m-%d %H:%M:%S'#
format(record)[source]#

Format the log record into a JSON string or a pretty-printed dictionary.

Parameters:
recordlogging.LogRecord

The log record containing log information (message, level, etc.).

Returns:
str

The formatted log message (either in literal str, JSON or pretty-print format).

Parameters:

record (LogRecord)

Return type:

str

formatException(ei)[source]#

Format and return the specified exception information as a string.

This default implementation just uses traceback.print_exception()

formatMessage(record)[source]#
formatStack(stack_info)[source]#

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)[source]#

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.

usesTime()[source]#

Check if the format uses the creation time of the record.