package com.netflix.governator.lifecycle; import java.util.concurrent.TimeUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.inject.TypeLiteral; public class LoggingLifecycleListener extends DefaultLifecycleListener { private static final Logger LOG = LoggerFactory.getLogger(LoggingLifecycleListener.class); @Override public <T> void objectInjected(TypeLiteral<T> type, T obj) { LOG.info("Injected {} {}@{}", new Object[]{ type.toString(), obj.getClass().getName(), Integer.toHexString(System.identityHashCode(obj))}); } @Override public void stateChanged(Object obj, LifecycleState newState) { } @Override public <T> void objectInjected(TypeLiteral<T> type, T obj, long duration, TimeUnit units) { LOG.info("Injected {} in {} {}", new Object[]{ type.toString(), TimeUnit.MILLISECONDS.convert(duration, TimeUnit.NANOSECONDS), TimeUnit.MILLISECONDS}); } @Override public <T> void objectInjecting(TypeLiteral<T> type) { LOG.info("Injecting {}", new Object[]{type.toString()}); } }