class_docstr: Logger configuration class.
  
  Logger configuration consists of:
    - pipeline_name: name of active pipeline
    - worker_name: name of component/object doing the logging
    - log_root: path for log directory
    - log_level: logger's level, default to INFO.
docstr: Updates the log config parameters via elements in a dict.
  
  Args:
    config: Dict of parameter tuples to assign to the logging config.
  Raises:
    ValueError if key is not a supported logging parameter.
code: def update(self, config: Optional[Dict[str, Any]] = None):
      """Updates the log config parameters via elements in a dict.
  
      Args:
        config: Dict of parameter tuples to assign to the logging config.
      Raises:
        ValueError if key is not a supported logging parameter.
      """
      if config:
          for k, v in config.items():
              if k in (
                  "log_root",
                  "log_level",
                  "pipeline_name",
                  "worker_name",
              ):
                  setattr(self, k, v)
              else:
                  raise ValueError(
                      "%s not expected in logger config." % k
                  )
  
file_path: tfx/tfx/utils/logging_utils.py
imports: import copy
  import logging
  import os
  from typing import Any, Dict, Optional
  from tfx.dsl.io import fileio
label_desc: Use image node_id 2 for calling the LoggerConfig obj's underlying member method code with example usage: obj.update(config) without return types