Logging#

Custom logging configuration for BAM Engine.

Extends Python’s standard logging with a custom TRACE level (5) for very verbose debugging output. Provides BamLogger class with per-event log level configuration support.

Log Levels#

  • CRITICAL (50): Critical errors

  • ERROR (40): Errors

  • WARNING (30): Warnings

  • INFO (20): Informational messages (default)

  • DEBUG (10): Debug messages

  • TRACE (5): Very verbose debug messages

Examples

Use logger in events:

>>> from bamengine import logging
>>> logger = getLogger("bamengine.events.my_event")
>>> logger.info("Event executing")
>>> logger.debug("Detailed debug info")
>>> logger.trace("Very verbose output")

Set log level:

>>> import bamengine as be
>>> sim = be.Simulation.init(log_level="WARNING")

Configure per-event log levels (advanced):

>>> log_config = {
...     "default_level": "INFO",
...     "events": {"firms_adjust_price": "DEBUG", "labor_market_round": "WARNING"},
... }
>>> sim = be.Simulation.init(logging=log_config)

Check if logging level enabled:

>>> if logger.isEnabledFor(logging.DEBUG):
...     expensive_stats = compute_expensive_stats()
...     logger.debug("Stats: %s", expensive_stats)

See also

Event.get_logger

Get logger for specific event

Constants#

bamengine.logging.TRACE#

Custom log level (5) for very verbose debugging output.

bamengine.logging.DEBUG#

Standard debug level (10).

bamengine.logging.INFO#

Standard info level (20).

bamengine.logging.WARNING#

Standard warning level (30).

bamengine.logging.ERROR#

Standard error level (40).

bamengine.logging.CRITICAL#

Standard critical level (50).

Classes#

BamLogger

Custom logger with TRACE level support.

Functions#

getLogger

Get a BamLogger instance.