class_docstr: Log reader to read vdl log, support for frontend api in lib.py.
  
      
docstr: Instance of LogReader
  
  Args:
      logdir: The dir include vdl log files, multiple subfolders allowed.
docstr_tok: ["Instance","of","LogReader","Args",":","logdir",":","The","dir","include","vdl","log","files",",","multiple","subfolders","allowed","."]
code: def __init__(self, logdir="", file_path=""):
      """Instance of LogReader
  
      Args:
          logdir: The dir include vdl log files, multiple subfolders allowed.
      """
      if isinstance(logdir, str):
          self.dir = [logdir]
      else:
          self.dir = logdir
  
      self.reader = None
      self.readers = {}
      self.walks = None
      self._tags = {}
      self.name2tags = {}
      self.tags2name = {}
  
      self.file_readers = {}
  
      # {'run': {'scalar': {'tag1': data, 'tag2': data}}}
      self._log_datas = collections.defaultdict(
          lambda: collections.defaultdict(
              lambda: collections.defaultdict(list)
          )
      )
  
      if file_path:
          self._log_data = collections.defaultdict(
              lambda: collections.defaultdict(list)
          )
          self.get_file_reader(file_path=file_path)
          remain = self.get_remain()
          self.read_log_data(remain=remain)
          components_name = components.keys()
          for name in components_name:
              exec(
                  "self.get_%s=partial(self.get_data, '%s')"
                  % (name, name)
              )
      elif logdir:
          self.data_manager = default_data_manager
          self.load_new_data(update=True)
          self._a_tags = {}
  
          self._model = ""
  
imports: import collections
  import os
  from functools import partial
  from visualdl.component import components
  from visualdl.io import bfile
  from visualdl.proto import record_pb2
  from visualdl.reader.record_reader import RecordReader
  from visualdl.server.data_manager import default_data_manager
  from visualdl.utils.string_util import decode_tag
  from visualdl.utils.string_util import encode_tag
label_desc: Use image node_id 1 to create a new LogReader object from inherited base classes: object with example: obj = LogReader(logdir, file_path)