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_loggerGet 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#
Custom logger with TRACE level support. |
Functions#
Get a BamLogger instance. |