class_docstr: Log reader to read vdl log, support for frontend api in lib.py.
  
      
docstr: Get log reader for every vdl log file.
  
  Get instance of class RecordReader base on BFile. Note that each
  `log` may contain multi `tag`.
  
  Args:
      dir: Dir name of log.
      log: Vdl log file name.
docstr_tok: ["Get","log","reader","for","every","vdl","log","file",".","Get","instance","of","class","RecordReader","base","on","BFile",".","Note","that","each","`","log","`","may","contain","multi","`","tag","`",".","Args",":","dir",":","Dir","name","of","log",".","log",":","Vdl","log","file","name","."]
code: def get_log_reader(self, dir, log):
      """Get log reader for every vdl log file.
  
      Get instance of class RecordReader base on BFile. Note that each
      `log` may contain multi `tag`.
  
      Args:
          dir: Dir name of log.
          log: Vdl log file name.
      """
      if self.walks is None:
          self.logs()
      if self.walks.get(dir, None) != log:
          raise FileNotFoundError(
              "Can't find file %s.", (dir + "/" + log)
          )
  
      filepath = bfile.join(dir, log)
      if filepath not in self.readers.keys():
          self.register_reader(filepath, dir)
      self.reader = self.readers[filepath]
      return self.reader
  
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 14 for calling the LogReader obj's underlying member method code with example usage: obj.get_log_reader(dir, log) and returns: self