ShubhamGondane opened a new pull request, #63321:
URL: https://github.com/apache/airflow/pull/63321

   ## Problem
   
   Reported in #62937: users trying to customize timestamp formats for 
component logs
   (scheduler, api-server, triggerer, etc.) via 
`AIRFLOW__LOGGING__LOG_FORMATTER_CLASS`
   or `AIRFLOW__LOGGING__LOGGING_CONFIG_CLASS` found that neither setting had 
any effect.
   
   As identified in the issue thread, the root cause is that structlog 
unconditionally
   strips user-configured formatters and hardcodes the timestamp as `fmt="iso"` 
in
   `MaybeTimeStamper`. `LOG_FORMATTER_CLASS` only applies to task/DAG logs (the 
stdlib
   logging pipeline), never to component logs rendered via structlog. The 
setting was
   documented with no caveat, silently doing nothing and confusing users.
   
   ## Fix
   
   - Added a new `log_timestamp_format` config option under `[logging]` 
(default: `iso`)
   - Exposed the previously hardcoded `fmt="iso"` in `MaybeTimeStamper` as this 
config value
   - Updated the `log_formatter_class` description to document that it does NOT 
affect
     component logs and to point users to `log_timestamp_format` instead
   
   ## Usage
   
   ```ini
   [logging]
   log_timestamp_format = %Y-%m-%d %H:%M:%S
   ```
   
   or via environment variable:
   
   ```bash
   AIRFLOW__LOGGING__LOG_TIMESTAMP_FORMAT="%Y-%m-%d %H:%M:%S"
   ```
   
   Accepts `iso` (ISO 8601, the default) or any Python strftime format string.
   Only affects component logs (scheduler, api-server, triggerer, 
dag-processor).
   Task/DAG logs continue to use `LOG_FORMAT` with `%(asctime)s`.
   
   closes: #62937


-- 
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