pymor.core.logger

This module contains pyMOR’s logging facilities.

pyMOR’s logging facilities are based on the logging module of the Python standard library. To obtain a new logger object use getLogger. Logging can be configured via the set_log_format and set_log_levels methods.

Module Contents

class pymor.core.logger.ColoredFormatter[source]

Bases: logging.Formatter

A logging.Formatter that colors loglevel keyword output.

Coloring can be disabled by setting the PYMOR_COLORS_DISABLE environment variable to 1.

Methods

format

Format the specified record as text.

format_html

format(record)[source]

Format the specified record as text.

The record’s attribute dictionary is used as the operand to a string formatting operation which yields the returned string. Before formatting the dictionary, a couple of preparatory steps are carried out. The message attribute of the record is computed using LogRecord.getMessage(). If the formatting string uses the time (as determined by a call to usesTime(), formatTime() is called to format the event time. If there is exception information, it is formatted using formatException() and appended to the message.

format_html(record)[source]
class pymor.core.logger.DummyLogger[source]
critical[source]
debug[source]
error[source]
exception[source]
info[source]
log[source]
propagate = False[source]
warn[source]
warning[source]
block(msg, *args, **kwargs)[source]
getChild()[source]
getEffectiveLevel()[source]
info2(msg, *args, **kwargs)[source]
info3(msg, *args, **kwargs)[source]
isEnabledFor(lvl)[source]
nop(*args, **kwargs)[source]
class pymor.core.logger.LogIndenter(logger, doit)[source]
pymor.core.logger.default_handler(filename=None)[source]
pymor.core.logger.getLogger(module, level=None, filename=None)[source]

Get the logger of the respective module for pyMOR’s logging facility.

In addition to the logging methods inherited from Logger all returned loggers get a block, info2, info3 method for the respective new levels. Plus all warnings methods get a XXX_once method that caches the msg and only emits the log entry the first time (per logger instance, not globally).

Parameters

module

Name of the module.

level

If set, logger.setLevel(level) is called (see setLevel).

filename

If not empty, path of an existing file where everything logged will be written to.

pymor.core.logger.log_levels(level_mapping)[source]

Change levels for given loggers on entry and reset to before state on exit.

Parameters

level_mapping

a dict of logger name -> level name

pymor.core.logger.set_log_format(max_hierarchy_level=1, indent_blocks=True, block_timings=False)[source]

Set log levels for pyMOR’s logging facility.

Parameters

max_hierarchy_level

The number of components of the loggers name which are printed. (The first component is always stripped, the last component always preserved.)

indent_blocks

If True, indent log messages inside a code block started with with logger.block(...).

block_timings

If True, measure the duration of a code block started with with logger.block(...).

pymor.core.logger.set_log_levels(levels=None)[source]

Set log levels for pyMOR’s logging facility.

Parameters

levels

Dict of log levels. Keys are names of loggers (see logging.getLogger), values are the log levels to set for the loggers of the given names (see setLevel).

pymor.core.logger.BLOCK[source]
pymor.core.logger.BLOCK_TIME[source]
pymor.core.logger.BLOCK_TIMINGS = True[source]
pymor.core.logger.BOLD_SEQ = '\x1b[1m'[source]
pymor.core.logger.COLORS[source]
pymor.core.logger.COLOR_SEQ = '\x1b[1;%dm'[source]
pymor.core.logger.CSSCOLORS[source]
pymor.core.logger.INDENT = 0[source]
pymor.core.logger.INDENT_BLOCKS = True[source]
pymor.core.logger.INFO2[source]
pymor.core.logger.INFO3[source]
pymor.core.logger.LAST_TIMESTAMP_LENGTH = 0[source]
pymor.core.logger.MAX_HIERARCHY_LEVEL = 1[source]
pymor.core.logger.RESET_SEQ = '\x1b[0m'[source]
pymor.core.logger.dummy_logger[source]
pymor.core.logger.start_time[source]