src.utils.logging

Structured logging configuration for Share of Search analysis.

Module Contents

class src.utils.logging.ColoredFormatter(fmt=None, datefmt=None, style='%', validate=True, *, defaults=None)[source]

Bases: logging.Formatter

Custom formatter with colored output for console.

format(record)[source]

Format the specified record as text.

The record’s attribute dictionary is used as the operand to a string formatting operation which yields the returned string. Before formatting the dictionary, a couple of preparatory steps are carried out. The message attribute of the record is computed using LogRecord.getMessage(). If the formatting string uses the time (as determined by a call to usesTime(), formatTime() is called to format the event time. If there is exception information, it is formatted using formatException() and appended to the message.

src.utils.logging.setup_logging(log_level: str = 'INFO', log_file: pathlib.Path | None = None, console: bool = True) logging.Logger[source]

Configure structured logging.

Parameters:
  • log_level – Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)

  • log_file – Optional path to log file

  • console – Whether to output to console

Returns:

Configured logger instance

src.utils.logging.get_logger(name: str = '') logging.Logger[source]

Get logger instance in the share_of_search hierarchy.

Parameters:

name – Logger name (usually __name__ from calling module)

Returns:

Logger instance that’s a child of the package logger