package com.netflix.governator; import javax.inject.Inject; import javax.inject.Singleton; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Singleton public class LoggingProvisionMetricsLifecycleListener extends AbstractLifecycleListener { private static final Logger LOG = LoggerFactory.getLogger(LoggingProvisionMetricsLifecycleListener.class); private final ProvisionMetrics metrics; @Inject LoggingProvisionMetricsLifecycleListener(LifecycleManager manager, ProvisionMetrics metrics) { this.metrics = metrics; manager.addListener(this); } @Override public void onStarted() { LOG.info("Injection provision report : \n" ); metrics.accept(new LoggingProvisionMetricsVisitor()); } @Override public void onStopped(Throwable t) { if (t != null) { LOG.info("Injection provision report for failed start : \n" ); metrics.accept(new LoggingProvisionMetricsVisitor()); } } }