finesse.utilities.logging.logs

finesse.utilities.logging.logs(logger, level=None, handler=None, close=True)[source]

Emit logs at or above level in the encapsulated context, optionally using the specified handler.

See the Python logging cookbook for more information.

Parameters:
loggerlogging.Logger

The logger to use for the encapsulated context.

levelstr or int, optional

The minimum log levels to emit. The standard log levels “debug”, “info”, “warning”, “error” and “critical” are supported, as are their corresponding level numbers (see logging).

handlerlogging.LogHandler, optional

The handler to add to logger for the encapsulated context.

closebool, optional

Close handler once finished. Defaults to True.

Examples

Print debug logs during parsing, excluding compilation messages.

>>> import logging
>>> from finesse import Model
>>> from finesse.utilities import logs
>>> from finesse.utilities.logging import FinesseStreamHandler
>>> handler = FinesseStreamHandler()
>>> handler.exclude("finesse.script.compiler")
>>> model = Model()
>>> with logs(logging.getLogger(), level="debug", handler=handler):
>>>     model.parse("laser l1 P=1")