NEW in lombok 0.10: You can annotate any field with @Log to let lombok generate a logger field automatically.
The logger is named log and field's type depends on which logger you have selected.
There are four @Log choices available:
@lombok.extern.apachecommons.Logprivate static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LogExample.class);@lombok.extern.jul.Logprivate static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LogExample.class.getName());@lombok.extern.log4j.Logprivate static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LogExample.class);@lombok.extern.slf4j.Logprivate static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
All @Log annotations can take an optional parameter of type Class. If such a parameter is specified, that class will be used as the parameter for the logger factory call.
If a field called log already exists, a warning will be emitted and no code will be generated.
A future feature of lombok's @Log is to find calls to the logger field and, if the chosen logging framework supports
it and the log level can be compile-time determined from the log call, guard it with an if statement. This way if
the log statement ends up being ignored, the potentially expensive calculation of the log string is avoided entirely. This does mean
that you should NOT put any side-effects in the expression that you log.