private static void writeMessage(final String message) {

    /**
     * ignore any logging if we have set some inclusive values with
     *
     * <p>-Dorg.jpedal.inclusiveLogFilters="memory,error"
     *
     * <p>Values are case-insensitve and example above would only output messages containing
     * 'memory' or 'error')
     */
    if (filterValues != null && message != null) {
      boolean found = false;

      for (final String s : filterValues) {
        if (message.toLowerCase().contains(s)) {
          found = true;
          break;
        }
      }
      if (!found) {
        return;
      }
    }

    // implement your own version of org.jpedal.utils.LogScanner
    // and set will then allow you to track any error messages
    if (logScanner != null) {
      logScanner.message(message);
    }

    /** write message to pane if client active and put to front */
    if (verbose) {
      System.out.println(message);
    }

    if (log_name != null) {

      // write message
      final PrintWriter log_file;
      try {
        log_file = new PrintWriter(new FileWriter(log_name, true));

        if (!testing) {
          log_file.println(TimeNow.getTimeNow() + ' ' + message); // write date to the log
        }
        log_file.println(message);
        log_file.flush();
        log_file.close();
      } catch (final Exception e) {
        System.err.println("Exception " + e + " attempting to write to log file " + log_name);
      }
    }
  }
  /** setup log file and check it is readable also sets command line options */
  public static final void setupLogFile(final String command_line_values) {

    if (command_line_values != null) {

      // verbose mode echos to screen
      if (command_line_values.indexOf('v') != -1) {
        verbose = true;
        writeLog("Verbose on");
      } else {
        verbose = false;
      }
    }

    // write out info
    if (!testing) {
      writeLog("Software started - " + TimeNow.getTimeNow());
    }
    writeLog("=======================================================");
  }