diff --git a/steps/advoware_cal_sync/calendar_sync_utils.py b/steps/advoware_cal_sync/calendar_sync_utils.py index 8c69778..3148b1f 100644 --- a/steps/advoware_cal_sync/calendar_sync_utils.py +++ b/steps/advoware_cal_sync/calendar_sync_utils.py @@ -18,20 +18,31 @@ logger = logging.getLogger(__name__) def log_operation(level: str, message: str, context=None, **context_vars): """Centralized logging with context, supporting file and console logging.""" context_str = ' '.join(f"{k}={v}" for k, v in context_vars.items() if v is not None) - full_message = f"[{time.time()}] {message} {context_str}".strip() + full_message = f"{message} {context_str}".strip() - # Log via logger - if level == 'info': - logger.info(full_message) - elif level == 'warning': - logger.warning(full_message) - elif level == 'error': - logger.error(full_message) - elif level == 'debug': - logger.debug(full_message) - - # Also log to console for journalctl visibility - print(f"[{level.upper()}] {full_message}") + # Use ctx.logger if context is available (Motia III FlowContext) + if context and hasattr(context, 'logger'): + if level == 'info': + context.logger.info(full_message) + elif level == 'warning': + context.logger.warning(full_message) + elif level == 'error': + context.logger.error(full_message) + elif level == 'debug': + context.logger.debug(full_message) + else: + # Fallback to standard logger + if level == 'info': + logger.info(full_message) + elif level == 'warning': + logger.warning(full_message) + elif level == 'error': + logger.error(full_message) + elif level == 'debug': + logger.debug(full_message) + + # Also log to console for journalctl visibility + print(f"[{level.upper()}] {full_message}") async def connect_db(context=None):