package com.netflix.governator;
import java.util.concurrent.TimeUnit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.netflix.governator.ProvisionMetrics.Element;
import com.netflix.governator.ProvisionMetrics.Visitor;
public class LoggingProvisionMetricsVisitor implements Visitor {
private static final Logger LOG = LoggerFactory.getLogger(LoggingProvisionMetricsVisitor.class);
int level = 1;
int elementCount = 0;
@Override
public void visit(Element entry) {
elementCount++;
LOG.info(String.format("%" + (level * 3 - 2) + "s%s%s : %d ms (%d ms)",
"",
entry.getKey().getTypeLiteral().toString(),
entry.getKey().getAnnotation() == null ? "" : " [" + entry.getKey().getAnnotation() + "]",
entry.getTotalDuration(TimeUnit.MILLISECONDS),
entry.getDuration(TimeUnit.MILLISECONDS)
));
level++;
entry.accept(this);
level--;
}
int getElementCount() {
return elementCount;
}
}