Created
May 17, 2010 16:25
-
-
Save ksky/403940 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 [email protected] | |
*/ | |
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