Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 2 additions & 26 deletions task-sdk/src/airflow/sdk/log.py
Original file line number Diff line number Diff line change
Expand Up @@ -225,44 +225,20 @@ def relative_path_from_logger(logger) -> Path | None:

def upload_to_remote(logger: FilteringBoundLogger, ti: RuntimeTI | None = None):
raw_logger = getattr(logger, "_logger")
# Dedicated logger for remote-upload visibility — operators relying on
# remote log handlers need a way to see when those handlers fail to load
# or fail to upload.
upload_log = structlog.get_logger("airflow.logging.remote")

ti_id = str(ti.id) if ti else None

handler = load_remote_log_handler()
if not handler:
upload_log.warning(
"remote_log_handler_unavailable",
ti_id=ti_id,
note="Remote log handler could not be loaded; logs will be available locally only.",
)
return

try:
relative_path = relative_path_from_logger(raw_logger)
except Exception as exc:
upload_log.warning(
"remote_log_path_resolution_failed",
ti_id=ti_id,
exc_info=exc,
)
except Exception:
return
if not relative_path:
return

log_relative_path = relative_path.as_posix()
try:
handler.upload(log_relative_path, ti)
except Exception as exc:
upload_log.warning(
"remote_log_upload_failed",
ti_id=ti_id,
log_relative_path=log_relative_path,
exc_info=exc,
)
handler.upload(log_relative_path, ti)


def mask_secret(secret: JsonValue, name: str | None = None) -> None:
Expand Down
120 changes: 0 additions & 120 deletions task-sdk/tests/task_sdk/test_log.py

This file was deleted.

Loading