github-actions[bot] opened a new pull request, #75564:
URL: https://github.com/apache/airflow/pull/75564

   * Go SDK: stop log attributes from displacing standard log fields
   
   A user attribute whose key collides with a standard field replaced that
   field instead of losing to it. "event" is the one that hurts: the
   supervisor takes a task's log line out of that key, so a Dag logging an
   attribute called "event" lost its message entirely, with nothing left in
   the line to show the message had ever existed. "timestamp" was displaced
   the same way, leaving the supervisor a value it cannot decode as a
   datetime.
   
   "level" and "logger" were already immune, for no reason other than being
   written after the attributes rather than before them.
   
   * Move a clashing log attribute aside instead of overwriting it
   
   Letting the standard field win the slot still discarded a value the caller
   asked to log. Reserving the slot and re-keying the attribute to
   "fields.<key>" keeps both: the supervisor finds the message in "event" and
   a parsable "timestamp", and the attribute survives under a name that
   collides with nothing. logrus resolves the same clash the same way.
   
   Rejecting the attribute outright, as structlog's TypeError does, is not
   available here. slog discards a handler's error, so returning one would
   drop the whole line, and a panic would surface in production rather than
   fail fast at the call site.
   (cherry picked from commit 9761167313d84d1367f3bb4735aa88242ad4c956)
   
   Co-authored-by: Henry Chen <[email protected]>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to