class DIRAC.FrameworkSystem.private.standardLogging.Formatter.BaseFormatter.BaseFormatter(fmt=None, datefmt=None)

Bases: logging.Formatter

BaseFormatter is used to format log record to create a string representing a DIRAC log message. It is based on the Formatter object of the standard ‘logging’ library.

The purpose of this Formatter is only to add a new parameter in the Formatter constructor: options. Indeed, all the custom Formatter objects of DIRAC will inherit from it to have this attribute because it is a dictionary containing DIRAC specific options useful to create new format.

__init__(fmt=None, datefmt=None)

Initialize the formatter without using parameters. They are then modified in format()

  • fmt (str) – log format: “%(asctime)s UTC %(name)s %(levelname)s: %(message)”

  • datefmt (str) – date format: “%Y-%m-%d %H:%M:%S”

localtime([seconds]) -> (tm_year,tm_mon,tm_mday,tm_hour,tm_min,


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'

Overriding. format is the main method of the Formatter object because it is the method which transforms a log record into a string. The format and the dateformat are hardcoded to return a DIRAC log format


record – the log record containing all the information about the log message: name, level, threadid…


Format and return the specified exception information as a string.

This default implementation just uses traceback.print_exception()


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)

logging.Formatter.formatTime() with microsecond precision by default


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