jason810496 opened a new pull request, #66994: URL: https://github.com/apache/airflow/pull/66994
## Why ``[logging] logging_config_class`` is documented as a "Logging class" but actually resolves to a ``logging.config.dictConfig`` dict, and the ``REMOTE_TASK_LOG`` / ``DEFAULT_REMOTE_CONN_ID`` side channel that powers remote log read-back was **undocumented**. So custom configs silently lost UI log read-back, and ``ElasticsearchTaskHandler`` / ``OpensearchTaskHandler`` papered over it by self-registering from inside ``__init__``. ## How - Document the real contract for ``logging_config_class`` (dict, not class) and the ``REMOTE_TASK_LOG`` / ``DEFAULT_REMOTE_CONN_ID`` module-level attributes in the config option help, ``advanced-logging-configuration.rst``, and ``discover_remote_log_handler`` docstring. - Deprecate the ES/OS handler self-registration with ``AirflowProviderDeprecationWarning`` (``stacklevel=1`` so module-based filters match through ``dictConfig``) and update the OpenSearch logging guide to set ``REMOTE_TASK_LOG`` at module scope. - Add warning for the case that "user module is missing ``REMOTE_TASK_LOG`` while ``remote_logging`` is on". --- ##### Was generative AI tooling used to co-author this PR? - [x] Yes, with help of Claude Code Opus 4.7 following [the guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions) -- 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]
