Skip to content

Instantly share code, notes, and snippets.

@ksky
Created May 17, 2010 16:25
Show Gist options
  • Save ksky/403940 to your computer and use it in GitHub Desktop.
Save ksky/403940 to your computer and use it in GitHub Desktop.
import java.util.logging.*
/**
* Simple wrapper for java.util.logging.Logger.
* This logger can log correct class/method names even if used in Groovy.
*
* @author ksky@jggug.org
*/
class GroovyLogger {
static final EXCLUDE_LIST = [
GroovyLogger.class.name,
"groovy.", "org.codehaus.groovy.", "gjdk.groovy.",
"java.", "javax.", "sun.",
"com.google.apphosting.", // for GAE/J
]
Logger logger
GroovyLogger(String name) {
logger = Logger.getLogger(name)
}
void log(Level level, String msg) {
def stack = Thread.currentThread().getStackTrace()
def caller = stack.find { elem ->
EXCLUDE_LIST.every { !elem.className.startsWith(it) }
}
logger.logp(level, caller.className, caller.methodName, msg)
}
void severe (String msg) { log(Level.SEVERE, msg) }
void warning(String msg) { log(Level.WARNING, msg) }
void info (String msg) { log(Level.INFO, msg) }
void config (String msg) { log(Level.CONFIG, msg) }
void fine (String msg) { log(Level.FINE, msg) }
void finer (String msg) { log(Level.FINER, msg) }
void finest (String msg) { log(Level.FINEST, msg) }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment