code: def _add_extra_fields(gelf_dict, record):
          
  
          # skip_list is used to filter additional fields in a log message.
          skip_list = (
              'args', 'asctime', 'created', 'exc_info', 'exc_text', 'filename',
              'funcName', 'id', 'levelname', 'levelno', 'lineno', 'module',
              'msecs', 'message', 'msg', 'name', 'pathname', 'process',
              'processName', 'relativeCreated', 'thread', 'threadName')
  
          for key, value in record.__dict__.items():
              if key not in skip_list and not key.startswith('_'):
                  gelf_dict['_%s' % key] = value
docs: Add extra fields to the given ``gelf_dict``
  
          However, this does not add additional fields in to ``message_dict``
          that are either duplicated from standard :class:`logging.LogRecord`
          attributes, duplicated from the python logging module source
          (e.g. ``exc_text``), or violate GLEF format (i.e. ``id``).
  
          .. seealso::
  
              The list of standard :class:`logging.LogRecord` attributes can be
              found at:
  
                  http://docs.python.org/library/logging.html#logrecord-attributes
  
          :param gelf_dict: dictionary representation of a GELF log.
          :type gelf_dict: dict
  
          :param record: :class:`logging.LogRecord` to extract extra fields
              from to insert into the given ``gelf_dict``.
          :type record: logging.LogRecord