logging_extensions - Logging utilities

LoggerMixin

class logging_extensions.LoggerMixin.LoggerMixin(rootLoggerName: str | None = None, enableIdLogging: bool = True)[source]

Bases: object

Mix-in providing protected methods for logging.

setRootLoggerName(rootLoggerName: str | None) None[source]
setLoggerId(loggerId: str) None[source]
setGenericMessagePrefix(prefix: str) None[source]
setLogLevelByName(levelName: str) None[source]
setRootLogLevelByName(levelName: str) None[source]
getLogLevelName() str[source]
getLoggerName() str[source]
setLogHandler(handler: Handler) None[source]

Removes all existing handlers and installs the new handler

Parameters:

handler – New handler

Returns:

None

setLogFormatter(formatter: Formatter) None[source]

Changes the logging format according to given formatter.

Parameters:

formatter – New formatter

Returns:

None

class logging_extensions.LoggerMixin.PublicLoggerMixin(rootLoggerName: str | None = None, enableIdLogging: bool = True)[source]

Bases: LoggerMixin

Same as LoggerMixin, but additionally providing public logging functions.

logDebug(msg, *args, **kwargs) None[source]
logInfo(msg, *args, **kwargs) None[source]
logImportantInfo(msg, *args, **kwargs) None[source]
logWarning(msg: str, *args, **kwargs) None[source]
logError(msg: str, *args, **kwargs) None[source]
logCritical(msg: str, *args, **kwargs) None[source]
log(level: int, msg: str, *args, **kwargs) None[source]
getLogLevelName() str
getLoggerName() str
setGenericMessagePrefix(prefix: str) None
setLogFormatter(formatter: Formatter) None

Changes the logging format according to given formatter.

Parameters:

formatter – New formatter

Returns:

None

setLogHandler(handler: Handler) None

Removes all existing handlers and installs the new handler

Parameters:

handler – New handler

Returns:

None

setLogLevelByName(levelName: str) None
setLoggerId(loggerId: str) None
setRootLogLevelByName(levelName: str) None
setRootLoggerName(rootLoggerName: str | None) None

utils

logging_extensions.utils.createLogger(loggerName, handler=None)[source]
logging_extensions.utils.getOrCreateLogger(loggerName, handler=None)[source]
logging_extensions.utils.setLogHandler(logger, logHandler)[source]
logging_extensions.utils.setDefaultLogHandler(logHandler)[source]
logging_extensions.utils.getDefaultLogHandler()[source]
logging_extensions.utils.setDefaultLogFormatter(logFormatter)[source]
logging_extensions.utils.getDefaultLogFormatter()[source]
logging_extensions.utils.useLogFormatter(logFormatter)[source]
logging_extensions.utils.createStdOutLogHandler()[source]
logging_extensions.utils.set_log_level(logger, log_level)[source]
logging_extensions.utils.STDOUT_LOG_HANDLER = <StreamHandler <stdout> (NOTSET)>

Handler that will log to stdout

mlab.LogHandler

class logging_extensions.mlab.LogHandler.MLABLogHandler[source]

Bases: Handler

A handler class which writes logging records, appropriately formatted, to the MeVisLab console. Copied and slightly adapted from MAF MLABLoggingHandler to not remove/display custom HTML code.

emit(record)[source]

Emit a record.

If a formatter is specified, it is used to format the record. The record is then written to a MLAB.log[Warning/Error] function, depending on the records log level.

acquire()

Acquire the I/O thread lock.

addFilter(filter)

Add the specified filter to this handler.

close()

Tidy up any resources used by the handler.

This version removes the handler from an internal map of handlers, _handlers, which is used for handler lookup by name. Subclasses should ensure that this gets called from overridden close() methods.

createLock()

Acquire a thread lock for serializing access to the underlying I/O.

filter(record)

Determine if a record is loggable by consulting all the filters.

The default is to allow the record to be logged; any filter can veto this and the record is then dropped. Returns a zero value if a record is to be dropped, else non-zero.

Changed in version 3.2: Allow filters to be just callables.

flush()

Ensure all logging output has been flushed.

This version does nothing and is intended to be implemented by subclasses.

format(record)

Format the specified record.

If a formatter is set, use it. Otherwise, use the default formatter for the module.

get_name()
handle(record)

Conditionally emit the specified logging record.

Emission depends on filters which may have been added to the handler. Wrap the actual emission of the record with acquisition/release of the I/O thread lock. Returns whether the filter passed the record for emission.

handleError(record)

Handle errors which occur during an emit() call.

This method should be called from handlers when an exception is encountered during an emit() call. If raiseExceptions is false, exceptions get silently ignored. This is what is mostly wanted for a logging system - most users will not care about errors in the logging system, they are more interested in application errors. You could, however, replace this with a custom handler if you wish. The record which was being processed is passed in to this method.

property name
release()

Release the I/O thread lock.

removeFilter(filter)

Remove the specified filter from this handler.

setFormatter(fmt)

Set the formatter for this handler.

setLevel(level)

Set the logging level of this handler. level must be an int or a str.

set_name(name)
logging_extensions.mlab.LogHandler.createMLABLogHandler()[source]

Create and return an MLABLogHandler with a default formatter.

logging_extensions.mlab.LogHandler.getMLABLogHandler()[source]

Return MLAB log handler singleton

mlab.TestCenterLogHandler

class logging_extensions.mlab.TestCenterLogHandler.MLABTestCenterLogHandler(additionalStackDepth=0)[source]

Bases: Handler

A handler class which writes logging records, appropriately formatted, to the MeVisLab console. Adapted from logger.MLABLogHandler to use test center instead of normal MLAB logging.

emit(record)[source]

Emit a record. If a formatter is specified, it is used to format the record. The record is then written to a TestCenter Logging.log[Info|Warning|Error] function, depending on the records log level.

acquire()

Acquire the I/O thread lock.

addFilter(filter)

Add the specified filter to this handler.

close()

Tidy up any resources used by the handler.

This version removes the handler from an internal map of handlers, _handlers, which is used for handler lookup by name. Subclasses should ensure that this gets called from overridden close() methods.

createLock()

Acquire a thread lock for serializing access to the underlying I/O.

filter(record)

Determine if a record is loggable by consulting all the filters.

The default is to allow the record to be logged; any filter can veto this and the record is then dropped. Returns a zero value if a record is to be dropped, else non-zero.

Changed in version 3.2: Allow filters to be just callables.

flush()

Ensure all logging output has been flushed.

This version does nothing and is intended to be implemented by subclasses.

format(record)

Format the specified record.

If a formatter is set, use it. Otherwise, use the default formatter for the module.

get_name()
handle(record)

Conditionally emit the specified logging record.

Emission depends on filters which may have been added to the handler. Wrap the actual emission of the record with acquisition/release of the I/O thread lock. Returns whether the filter passed the record for emission.

handleError(record)

Handle errors which occur during an emit() call.

This method should be called from handlers when an exception is encountered during an emit() call. If raiseExceptions is false, exceptions get silently ignored. This is what is mostly wanted for a logging system - most users will not care about errors in the logging system, they are more interested in application errors. You could, however, replace this with a custom handler if you wish. The record which was being processed is passed in to this method.

property name
release()

Release the I/O thread lock.

removeFilter(filter)

Remove the specified filter from this handler.

setFormatter(fmt)

Set the formatter for this handler.

setLevel(level)

Set the logging level of this handler. level must be an int or a str.

set_name(name)
logging_extensions.mlab.TestCenterLogHandler.createMLABTestCenterLogHandlerForLoggerMixin(formatter=<logging.Formatter object>, additionalStackDepth=7)[source]