Mercurial Hosting > luan
diff logging/src/luan/modules/logging/LuanLogger.java @ 214:8e4ef9134362
move time critical logging functions to java
git-svn-id: https://luan-java.googlecode.com/svn/trunk@215 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Fri, 11 Jul 2014 06:06:31 +0000 |
parents | |
children | ec016471c6eb |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/logging/src/luan/modules/logging/LuanLogger.java Fri Jul 11 06:06:31 2014 +0000 @@ -0,0 +1,53 @@ +package luan.modules.logging; + +import org.apache.log4j.Logger; +import luan.LuanState; +import luan.LuanException; +import luan.LuanTable; +import luan.LuanJavaFunction; + + +public final class LuanLogger { + private final Logger logger; + + public LuanLogger(Logger logger) { + this.logger = logger; + } + + public void error(LuanState luan,Object obj) throws LuanException { + logger.error( luan.toString(obj) ); + } + + public void warn(LuanState luan,Object obj) throws LuanException { + logger.warn( luan.toString(obj) ); + } + + public void info(LuanState luan,Object obj) throws LuanException { + logger.info( luan.toString(obj) ); + } + + public void debug(LuanState luan,Object obj) throws LuanException { + logger.debug( luan.toString(obj) ); + } + + public LuanTable table() { + LuanTable tbl = new LuanTable(); + try { + tbl.put( "error", new LuanJavaFunction( + LuanLogger.class.getMethod( "error", LuanState.class, Object.class ), this + ) ); + tbl.put( "warn", new LuanJavaFunction( + LuanLogger.class.getMethod( "warn", LuanState.class, Object.class ), this + ) ); + tbl.put( "info", new LuanJavaFunction( + LuanLogger.class.getMethod( "info", LuanState.class, Object.class ), this + ) ); + tbl.put( "debug", new LuanJavaFunction( + LuanLogger.class.getMethod( "debug", LuanState.class, Object.class ), this + ) ); + } catch(NoSuchMethodException e) { + throw new RuntimeException(e); + } + return tbl; + } +}