Peeer Peeer - 7 months ago 71
Java Question

How can i log every method called in a class automatically with log4j

I have a class with database calls, and I generally want to log every method called (with arguments) in this class with log4j:

logger.debug("foo(id="+id+") initiated");


Is it possible to do this automatically? Maybe by using some sort of annotation in start of each method instead of writing every single logger.debug?

Today I have to update my logging.debug every time I change arguments or method name.

Answer

Try @Loggable annotation and an AspectJ aspect from jcabi-aspects (I'm a developer):

@Loggable(Loggable.INFO)
public String load(URL url) {
  return url.openConnection().getContent();
}

All method calls are logged through SLF4J.

Comments