AOP logger for Spring Boot applications.
Annotate method with @LogMethod
to log name, input arguments and result of method invocation, or @Loggable
for all methods of the component.
@Service
public class Service {
@LogMethod
public TestObject test(String name1, String name2, Integer integer) {
TestObject testObject = new TestObject(
1L,
name1,
new InnerTestObject(
2L,
name2
)
);
return testObject;
}
}
Log message:
com.dm4nk.aoptest.Service#test(name1="Outer", name2="Inner", integer=2): {"id":1,"name":"AOP","inner":{"id":2,"name":"none"}}
@LogMethod(logResult = false)
skips result logging@LogMethod(level = Level.INFO)
changes level of aop-logger messages.Level.DEBUG
is set by default@Loggable(excludeMethods = true)
skips logging of all methods not annotated with@IncludeLog
@ExcludeLog
excludes method or method parameter from logging message
We will use jitpack.io project to get github repository as maven library.
Add to pom.xml
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.github.dm4nk</groupId>
<artifactId>aop-logger</artifactId>
<version>1.1</version>
</dependency>
</dependencies>
Add "com.dm4nk.aop.logger"
to pakage scan.
@SpringBootApplication(
scanBasePackages = {
"com.dm4nk.aop.logger",
"your.project.package"
}
)
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}