class_docstr: Stores artifacts as files in a local directory.
code: def log_artifacts(self, local_dir, artifact_path=None):
      verify_artifact_path(artifact_path)
      # NOTE: The artifact_path is expected to be in posix format.
      # Posix paths work fine on windows but just in case we normalize it here.
      if artifact_path:
          artifact_path = os.path.normpath(artifact_path)
      artifact_dir = (
          os.path.join(self.artifact_dir, artifact_path)
          if artifact_path
          else self.artifact_dir
      )
      if not os.path.exists(artifact_dir):
          mkdir(artifact_dir)
      shutil.copytree(
          src=local_dir, dst=artifact_dir, dirs_exist_ok=True
      )
  
file_path: mlflow/mlflow/store/artifact/local_artifact_repo.py
imports: import os
  import shutil
  from mlflow.store.artifact.artifact_repo import ArtifactRepository, verify_artifact_path
  from mlflow.utils.file_utils import get_file_info, list_all, local_file_uri_to_path, mkdir, relative_path_to_artifact_path
label_desc: Use image node_id 5 for calling the LocalArtifactRepository obj's underlying member method code with example usage: obj.log_artifacts(local_dir, artifact_path) without return types