@@ -148,7 +148,19 @@ def logger_or_ancestors_have_handler(
148148#### Handlers ####
149149
150150def _build_rich_handler (width : int | None = None , ** _ : object ) -> logging .Handler :
151- """Building the rich handler with any extras."""
151+ """Build the rich console handler.
152+
153+ This factory is invoked from handler resolution in ``get_daq_logger`` and
154+ receives forwarded ``**extras``.
155+
156+ Args:
157+ width: Optional console width used by ``FormattedRichHandler``.
158+ If ``None``, terminal width is auto-detected via ``get_width``.
159+ **_: Additional forwarded keyword arguments. Ignored by this factory.
160+
161+ Returns:
162+ The configured rich logging handler.
163+ """
152164 real_width = width if width is not None else get_width ()
153165 return FormattedRichHandler (width = real_width )
154166
@@ -160,6 +172,14 @@ def _build_rich_handler(width: int | None = None, **_: object) -> logging.Handle
160172)
161173
162174def _build_stdout_handler (** _ : object ) -> logging .Handler :
175+ """Build a stdout stream handler.
176+
177+ Args:
178+ **_: Additional forwarded keyword arguments. Ignored by this factory.
179+
180+ Returns:
181+ A ``logging.StreamHandler`` writing to ``sys.stdout``.
182+ """
163183 handler = logging .StreamHandler (sys .stdout )
164184 handler .setFormatter (LoggingFormatter ())
165185 return handler
@@ -173,6 +193,15 @@ def _build_stdout_handler(**_: object) -> logging.Handler:
173193)
174194
175195def _build_stderr_handler (** _ : object ) -> logging .Handler :
196+ """Build a stderr stream handler.
197+
198+ Args:
199+ **_: Additional forwarded keyword arguments. Ignored by this factory.
200+
201+ Returns:
202+ A ``logging.StreamHandler`` writing to ``sys.stderr`` with
203+ ``ERROR`` level.
204+ """
176205 handler = logging .StreamHandler (sys .stderr )
177206 handler .setFormatter (LoggingFormatter ())
178207 handler .setLevel (logging .ERROR )
@@ -187,6 +216,19 @@ def _build_stderr_handler(**_: object) -> logging.Handler:
187216)
188217
189218def _build_file_handler (path : str | None = None , ** _ : object ) -> logging .Handler :
219+ """Build a file handler.
220+
221+ Args:
222+ path: Path to the output log file. This is typically forwarded from
223+ ``get_daq_logger(..., file_handler_path=...)`` as ``path``.
224+ **_: Additional forwarded keyword arguments. Ignored by this factory.
225+
226+ Returns:
227+ A configured ``logging.FileHandler``.
228+
229+ Raises:
230+ ValueError: If ``path`` is not provided.
231+ """
190232 if not path :
191233 err_msg = "path is required for file handler"
192234 raise ValueError (err_msg )
@@ -208,6 +250,21 @@ def _build_erskafka_handler(
208250 address : str = "monkafka.cern.ch:30092" ,
209251 ers_app_name : str | None = None ,
210252 ** _ : object ) -> logging .Handler :
253+ """Build an ERS Kafka handler.
254+
255+ Args:
256+ session_name: ERS session name used by the Kafka handler.
257+ topic: Kafka topic for ERS log messages.
258+ address: Kafka broker address in ``host:port`` format.
259+ ers_app_name: Optional ERS application name associated with messages.
260+ **_: Additional forwarded keyword arguments. Ignored by this factory.
261+
262+ Returns:
263+ A configured ``ERSKafkaLogHandler`` instance.
264+
265+ Raises:
266+ ERSInitError: If the handler cannot be initialized.
267+ """
211268
212269 try :
213270 return ERSKafkaLogHandler (
0 commit comments