PROBLEM
My personal goal of 2017 is to write less useless-yet-neccessary code, such as initializing a logger:-
import org.slf4j.Logger
import org.slf4j.LoggerFactory
class MyClass {
static Logger LOGGER = LoggerFactory.getLogger(MyClass)
static void main(String[] args) {
LOGGER.debug('TEST')
}
}
SOLUTION
Groovy provides several useful annotations that allow us to inject a logger instance into the class.
Here’s a rewrite of the above example:-
import groovy.util.logging.Slf4j
@Slf4j
class MyClass {
static void main(String[] args) {
log.debug('TEST')
}
}
If we insist of using the same variable ( LOGGER ), we can do this:-
import groovy.util.logging.Slf4j
@Slf4j(value = 'LOGGER')
class MyClass {
static void main(String[] args) {
LOGGER.debug('TEST')
}
}
We can also use @Log for Java Util Logger, @Log4j for Log4j and @Commons for Apache Common Logging.
Leave a Reply