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]