code: def formatLog(source="", level="", title="", data={}):
    
    # consistently output empty string for unset params, because null values differ by language
    source = "" if source is None else source
    level = "" if level is None else level
    title = "" if title is None else title
    
    if not type(data) is dict:
      data = {}
    data['source'] = source
    data['level'] = level
    data['title'] = title
  
    return format(data)
docs: Similar to format, but takes additional reserved params to promote logging best-practices
  
    :param level - severity of message - how bad is it?
    :param source - application context - where did it come from?
    :param title - brief description - what kind of event happened?
    :param data - additional information - what details help to investigate?