class_docstr: Custom log formatter.
  
  Extends `colored.TTYColoredFormatter` by adding attributes
  to message arguments and coloring error traceback.
code: def _color_record_args(self, record: LogRecord) -> LogRecord:
      if isinstance(record.args, (tuple, list)):
          record.args = tuple(
              self._color_arg(arg) for arg in record.args
          )
      elif isinstance(record.args, dict):
          if self._count_number_of_arguments_in_message(record) > 1:
              # Case of logging.debug("a %(a)d b %(b)s", {'a':1, 'b':2})
              record.args = {
                  key: self._color_arg(value)
                  for key, value in record.args.items()
              }
          else:
              # Case of single dict passed to formatted string
              record.args = self._color_arg(record.args)  # type: ignore
      elif isinstance(record.args, str):
          record.args = self._color_arg(record.args)
      return record
  
file_path: airflow/airflow/utils/log/colored_log.py
imports: from __future__ import annotations
  import sys
  from typing import TYPE_CHECKING, Any
  import re2
  from colorlog import TTYColoredFormatter
  from colorlog.escape_codes import esc, escape_codes
  from airflow.utils.log.timezone_aware import TimezoneAware
label_desc: Use image node_id 4 for calling the CustomTTYColoredFormatter obj's underlying member method code with example usage: obj._color_record_args(record) and returns: record