docs: private synchronized void log(String moduleName, String message) {
  
          // We re-open the file every time. This should be OK performance-wise, since modules are usually not
          // imported/exported/deleted so frequently that this would matter.
          File logFile = getLogFile(moduleName);
          logFile.getParentFile().mkdirs();
          FileOutputStream out = null;
          PrintStream ps = null;
          try {
              out = new FileOutputStream(logFile, true); // open file with append=true
              ps = new PrintStream(out);
              ps.println(message);
          } catch (IOException e) {
              LOG.error(e.getLocalizedMessage(), e);
          } finally {
              if (ps != null) {
                  ps.close();
              }
          }
      }