- @Log for java.util.logging
- @Commons for Commons-Logging
- @Log4j for Log4J
- @Slf4j for SLF4J
private static final log = LogFactory.getLog(this)
However, so an annotation to eliminate one line isn't a big deal - what is a big deal is what the groovy "log.X" methods compile into. From the release notes: you wind up with "log.info" turns into:
if (log.isLoggable(Level.INFO)) {
log.info 'whatever your message was'
}
This subtle change is a great performance booster -- you get a quick boolean check, to avoid a bunch fo string buff/string concat operations, followed by actually sending the log message down into the log system itself - only to be filtered out by the level.
I've seen very verbose and 'noisy' logging by Java applications reduce performance by 10-20% depending on how enthusiastic you are about logging and how resource constrained your platform is. Likely not an issue for bigger setups - but being a little performance conscious here or there can go a long way.
Edit (7-6-11): Used the @Slf4j annotation in Groovy SPARQL, it appears to pick up the dependencies automatically which is also nice.
When doing this, I just had to make sure I had the latest Groovy-Eclipse for Groovy 1.8 source editing. Otherwise, uninitialized "log" variables are errors in Groovy 1.7.x.
No comments:
Post a Comment