Skip to content

Commit 3d66f5d

Browse files
refactor(worker): Refine logging structure in BaseCodecovTask
- Changed the logging of context fields to use a nested dictionary for improved clarity. - Updated error and warning logs to include the new context structure, enhancing the detail of logged information during task retries and max retries exceeded scenarios.
1 parent 77eccb6 commit 3d66f5d

File tree

1 file changed

+22
-14
lines changed

1 file changed

+22
-14
lines changed

apps/worker/tasks/base.py

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -270,21 +270,25 @@ def retry(
270270
retry_kwargs = kwargs if kwargs is not None else {}
271271
all_kwargs = {**request_kwargs, **retry_kwargs}
272272

273-
# Extract context fields directly in log extra dict
274-
log_extra = {
275-
"current_retries": current_retries,
276-
"max_retries": task_max_retries,
277-
"task_name": self.name,
278-
}
273+
# Extract context fields into nested dict
274+
context = {}
279275
if all_kwargs.get("commitid") is not None:
280-
log_extra["commitid"] = all_kwargs.get("commitid")
276+
context["commitid"] = all_kwargs.get("commitid")
281277
if all_kwargs.get("repoid") is not None:
282-
log_extra["repoid"] = all_kwargs.get("repoid")
278+
context["repoid"] = all_kwargs.get("repoid")
283279
if all_kwargs.get("report_type") is not None:
284-
log_extra["report_type"] = all_kwargs.get("report_type")
280+
context["report_type"] = all_kwargs.get("report_type")
285281

286282
if task_max_retries is not None and current_retries >= task_max_retries:
287-
log.error(f"Task {self.name} exceeded max retries", extra=log_extra)
283+
log.error(
284+
f"Task {self.name} exceeded max retries",
285+
extra={
286+
"context": context if context else None,
287+
"current_retries": current_retries,
288+
"max_retries": task_max_retries,
289+
"task_name": self.name,
290+
},
291+
)
288292
TASK_MAX_RETRIES_EXCEEDED_COUNTER.labels(task=self.name).inc()
289293
raise MaxRetriesExceededError(
290294
f"Task {self.name} exceeded max retries ({task_max_retries})"
@@ -293,14 +297,18 @@ def retry(
293297
if countdown is None:
294298
countdown = TASK_RETRY_BACKOFF_BASE_SECONDS * (2**current_retries)
295299

296-
log_extra.update(
297-
{
300+
log.warning(
301+
f"Task {self.name} retrying",
302+
extra={
303+
"context": context if context else None,
298304
"countdown": countdown,
305+
"current_retries": current_retries,
299306
"exception_type": type(exc).__name__ if exc else None,
307+
"max_retries": task_max_retries,
300308
"task_id": getattr(request, "id", None) if request else None,
301-
}
309+
"task_name": self.name,
310+
},
302311
)
303-
log.warning(f"Task {self.name} retrying", extra=log_extra)
304312

305313
celery_max_retries = (
306314
self.max_retries if max_retries is _NOT_PROVIDED else max_retries

0 commit comments

Comments
 (0)