class_docstr: Test that log messages emitted in the first step
  are saved and readable.
class_docstr_tok: ["Test","that","log","messages","emitted","in","the","first","step","are","saved","and","readable","."]
code: def check_results(self, flow, checker):
      msg1 = "stdout: A regular message.\n"
      msg2 = "stdout: A message with unicode: \u5e74\n"
      stdout_combined_msg = "".join([msg1, msg2, ""])
  
      msg3 = "stderr: A regular message.\n"
      msg4 = "stderr: A message with unicode: \u5e74\n"
      stderr_combined_msg = "".join([msg3, msg4, ""])
  
      for step in flow:
          if step.name not in ["start", "end"]:
              checker.assert_log(
                  step.name,
                  "stdout",
                  stdout_combined_msg,
                  exact_match=False,
              )
              checker.assert_log(
                  step.name,
                  "stderr",
                  stderr_combined_msg,
                  exact_match=False,
              )
  
imports: from metaflow_test import MetaflowTest, ExpectationFailed, steps
label_desc: Use image node_id 3 for calling the BasicLogTest obj's underlying member method code with example usage: obj.check_results(flow, checker) without return types