code: def assert_log(self, step, logtype, value, exact_match=True):
      log_value = self.get_log(step, logtype)
      if log_value == value:
          return True
      elif not exact_match and value in log_value:
          return True
      else:
          raise AssertLogFailed(
              "Step '%s' expected task.%s='%s' but got task.%s='%s'"
              % (step, logtype, repr(value), logtype, repr(log_value))
          )
  
imports: import json
  import os
  from metaflow.util import is_stringish
  from .None import MetaflowCheck, AssertArtifactFailed, AssertCardFailed, AssertLogFailed, assert_equals, assert_exception, truncate
label_desc: Use image node_id 7 for calling the MetadataCheck obj's underlying member method code with example usage: obj.assert_log(step, logtype, value, exact_match) and returns: True, True