code: def get_python_logger():
      
      global _python_logger
      if _python_logger is None:
          fn = "a99.log"
          l = logging.Logger("a99", level=a99.logging_level)
          if a99.flag_log_file:
              add_file_handler(l, fn)
          if a99.flag_log_console:
              ch = logging.StreamHandler()
              ch.setFormatter(_fmtr)
              l.addHandler(ch)
          _python_logger = l
          for line in a99.format_box("a99 logging session started @ {}".format(a99.now_str())):
              l.info(line)
          if a99.flag_log_file:
              l.info("$ Logging to console $")
          if a99.flag_log_file:
              l.info("$ Logging to file '{}' $".format(fn))
  
      return _python_logger
docs: Returns logger to receive Python messages (as opposed to Fortran).
  
      At first call, _python_logger is created. At subsequent calls, _python_logger is returned. 
      Therefore, if you want to change `a99.flag_log_file` or `a99.flag_log_console`, do so 
      before calling get_python_logger(), otherwise these changes will be ineffective.