code: def log_handler(self, msg):
      if "error" in msg["level"] and not self.error_occured:
          self.slack.chat_postMessage(
              channel=self.own_id, text="At least one error occured."
          )
          self.error_occured = True
  
      if msg["level"] == "progress" and msg["done"] == msg["total"]:
          # workflow finished
          self.slack.chat_postMessage(
              channel=self.own_id, text="Workflow complete."
          )
  
imports: import logging
  import platform
  import time
  import datetime
  import sys
  import os
  import json
  import threading
  from functools import partial
  import inspect
  import textwrap
label_desc: Use image node_id 2 for calling the SlackLogger obj's underlying member method code with example usage: obj.log_handler(msg) without return types