/*
* Copyright (c) 2009-2010 by Christian Lorenz,
* Zuse Institute Berlin
*
* Licensed under the BSD License, see LICENSE file for details.
*
*/
package de.mxro.thrd.xstreemfs.foundation.monitoring;
import java.io.IOException;
/**
*
* <br>
* 17.08.2009
*/
public class MonitoringLog implements MonitoringListener<Double> {
private static MonitoringLog instance;
private long monitoringStartTime;
public static synchronized void initialize(String filepath) throws IOException {
if (instance == null) {
instance = new MonitoringLog();
instance.monitoringStartTime = System.currentTimeMillis();
// file to write to
// (new File(filepath)).getParentFile().mkdirs();
// instance.out = new FileWriter(filepath);
}
}
@Override
public void valueAddedOrChanged(MonitoringEvent<Double> event) {
monitor(event.getKey(), event.getNewValue().toString());
}
public static synchronized void monitor(String key, String value) {
long time = (System.currentTimeMillis() - instance.monitoringStartTime) / 1000;
System.out.println("[" + time + "s]\t" + key + "\t:\t" + value);
}
@SuppressWarnings("unchecked")
public static void registerFor(Monitoring monitoring, String... keys) {
for (String key : keys)
monitoring.registerListener(key, instance);
}
}