sec_interp.logger_config module
- class sec_interp.logger_config.ImmediateFlushFileHandler(filename, mode='a', maxBytes=0, backupCount=0, encoding=None, delay=False, errors=None)[source]
Bases:
RotatingFileHandlerFile handler that flushes immediately after each write.
This ensures logs are written to disk before a crash occurs. Uses os.fsync() to force OS-level write to disk.
- class sec_interp.logger_config.QgsLogHandler(tag: str = 'SecInterp')[source]
Bases:
HandlerCustom logging handler that writes to QGIS message log.
- sec_interp.logger_config.get_logger(name: str | None = None) Logger[source]
Get a configured logger for a plugin module.
- Parameters:
name – Name of the logger (typically __name__ from calling module). If None, returns the root plugin logger.
- Returns:
Configured logger instance.
- Return type:
logging.Logger
- sec_interp.logger_config.log_critical_operation(logger: Logger, operation_name: str, **context: Any) None[source]
Log a critical operation with maximum persistence.
Use this before operations that might crash QGIS (e.g., canvas operations, rubber band manipulation, tool activation).
- Parameters:
logger – Logger instance.
operation_name – Name of the operation.
**context – Additional context to log.
- sec_interp.logger_config.setup_logging(level: int = 10) Logger[source]
Configure the root logger for the plugin.
This should be called once at plugin initialization. It sets up handlers for QGIS message log, file logging with rotation, and stderr.
- Parameters:
level – Logging level for the root logger. Defaults to DEBUG.
- Returns:
The configured root logger.
- Return type:
logging.Logger