private PrintStream getPrintStream(MetricName metricName, String header) throws IOException { PrintStream stream; synchronized (streamMap) { stream = streamMap.get(metricName); if (stream == null) { stream = createStreamForMetric(metricName); streamMap.put(metricName, stream); stream.println(header); } } return stream; } }