public void startListening() {
        if (isRunning)
            return;

        log_files.put("jmeter_log", JMeterUtils.getPropDefault(LoggingManager.LOG_FILE, "jmeter.log"));
        if (Utils.isJMeterServer()) {
            log_files.put("jmeter_server_log", Constants.JMETER_SERVER_LOG_FILENAME);
        }
        for (Map.Entry<String, String> entry : log_files.entrySet()) {
            StringBuilder filename = new StringBuilder(entry.getValue());
            String host = Utils.getHostIP() + (Utils.isJMeterServer() ? "(jmeter-server)" : "");

            if (!new File(filename.toString()).exists()) {
                filename = new StringBuilder(JMeterUtils.getJMeterBinDir() + "/").append(filename);
            }
            try {
                BmLog.info("Log file path at host= " + host + " is: " + filename);

                BufferedReader logBufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(filename.toString())));
                logFileReaders.put(entry.getKey(), logBufferedReader);
                initLogUploader(filename.toString(), logBufferedReader);
            } catch (FileNotFoundException fnfe) {
                BmLog.error("Failed to find log file " + filename + ": " + fnfe.getMessage());
            }
        }
        isRunning = true;
    }