MdmLogger

Structured logging with file output, size-based rotation, and multiple log levels.

class MdmLogger(debug: bool = False, quiet: bool = False, output_path: Path | str | None = None, max_bytes: int = 104857600)[source]

Bases: object

Parameters:
log_startup(script_name: str, version: str | None = None) None[source]

Log script startup information.

Parameters:
  • script_name (str)

  • version (str | None)

Return type:

None

update_log(level: str, message: str, startup: bool = False, exit_code: int | None = None) None[source]

Log a message with the specified level and optionally exit.

Parameters:
  • level (str) – The log level (info, warn, error, debug)

  • message (str) – The message to log

  • startup (bool, defaults to False) – If True, adds new line to first log message

  • exit_code (int | None, optional) – If provided, exit with this code after logging, defaults to None

Return type:

None

debug(message: str, exit_code: int | None = None) None[source]

Log a DEBUG message.

Parameters:
  • message (str)

  • exit_code (int | None)

Return type:

None

info(message: str, startup: bool | None = False, exit_code: int | None = None) None[source]

Log an INFO message.

Parameters:
  • message (str)

  • startup (bool | None)

  • exit_code (int | None)

Return type:

None

warn(message: str, exit_code: int | None = None) None[source]

Log a WARN message.

Parameters:
  • message (str)

  • exit_code (int | None)

Return type:

None

error(message: str, exit_code: int | None = None) None[source]

Log an ERROR message.

Parameters:
  • message (str)

  • exit_code (int | None)

Return type:

None

get_log_path() Path | None[source]

Return the log file path if configured.

Return type:

Path | None

flush() None[source]

Ensure all pending writes are flushed to disk.

Return type:

None

log_exception(message: str, exc: Exception, exit_code: int | None = None) None[source]

Log an exception with full traceback.

Parameters:
Return type:

None