changeset 1455:1437fb1f0956

add slf4j-goodjava
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 08 Mar 2020 16:50:14 -0600
parents 219f2b937f2b
children 4cc4f08a94e1
files classpath.sh scripts/build-luan.sh slf4j/src/org/slf4j/impl/GoodAdapter.java slf4j/src/org/slf4j/impl/GoodFactory.java slf4j/src/org/slf4j/impl/StaticLoggerBinder.java
diffstat 5 files changed, 190 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
diff -r 219f2b937f2b -r 1437fb1f0956 classpath.sh
--- a/classpath.sh	Sun Mar 08 14:11:30 2020 -0600
+++ b/classpath.sh	Sun Mar 08 16:50:14 2020 -0600
@@ -1,6 +1,7 @@
 LUAN_HOME=`pwd`
 
 CLASSPATH=$LUAN_HOME/src
+CLASSPATH=$CLASSPATH:$LUAN_HOME/slf4j/src
 
 for file in $LUAN_HOME/lib/*; do
 	CLASSPATH=$CLASSPATH:$file;
diff -r 219f2b937f2b -r 1437fb1f0956 scripts/build-luan.sh
--- a/scripts/build-luan.sh	Sun Mar 08 14:11:30 2020 -0600
+++ b/scripts/build-luan.sh	Sun Mar 08 16:50:14 2020 -0600
@@ -1,17 +1,25 @@
 set -e
 
 cd `dirname $0`/..
+LUANHOME=`pwd`
 
 rm -rf build
 mkdir -p build/luan/jars
+cp lib/* build/luan/jars
 
 find . -name *.class -delete
 
 . classpath.sh
-javac -classpath $CLASSPATH `find src -name *.java`
-cd src; jar cvf ../build/luan/jars/luan.jar `find . -name *.class -o -name *.luan`; cd ..
-cp lib/* build/luan/jars
+
+cd $LUANHOME/src
+javac -classpath $CLASSPATH `find . -name *.java`
+jar cvf $LUANHOME/build/luan/jars/luan.jar `find . -name *.class -o -name *.luan`
 
+cd $LUANHOME/slf4j/src
+javac -classpath $CLASSPATH `find . -name *.java`
+jar cvf $LUANHOME/build/luan/jars/slf4j-goodjava.jar `find . -name *.class -o -name *.luan`
+
+cd $LUANHOME
 cp scripts/install.sh build/luan
 chmod +x build/luan/install.sh
 cp scripts/uninstall.sh build/luan
diff -r 219f2b937f2b -r 1437fb1f0956 slf4j/src/org/slf4j/impl/GoodAdapter.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/slf4j/src/org/slf4j/impl/GoodAdapter.java	Sun Mar 08 16:50:14 2020 -0600
@@ -0,0 +1,134 @@
+package org.slf4j.impl;
+
+import org.slf4j.helpers.MarkerIgnoringBase;
+import org.slf4j.helpers.MessageFormatter;
+import org.slf4j.helpers.FormattingTuple;
+
+
+final class GoodAdapter extends MarkerIgnoringBase {
+	private final goodjava.logging.Logger logger;
+
+	GoodAdapter(goodjava.logging.Logger logger) {
+		this.logger = logger;
+	}
+
+	public void error​(String msg) {
+		logger.error(msg);
+	}
+
+	public void error​(String msg, Throwable t) {
+		logger.error(msg,t);
+	}
+
+	public boolean isErrorEnabled() {
+		return true;
+	}
+
+	public void error(String format, Object... arguments) {
+		FormattingTuple ft = MessageFormatter.arrayFormat(format,arguments);
+		logger.error( ft.getMessage(), ft.getThrowable() );
+	}
+
+	public void error(String format, Object arg1, Object arg2) {
+		error(format,new Object[]{arg1,arg2});
+	}
+
+	public void error(String format, Object arg) {
+		error(format,new Object[]{arg});
+	}
+
+	public void warn(String msg) {
+		logger.warn(msg);
+	}
+
+	public void warn(String msg, Throwable t) {
+		logger.warn(msg,t);
+	}
+
+	public boolean isWarnEnabled() {
+		return true;
+	}
+
+	public void warn(String format, Object... arguments) {
+		FormattingTuple ft = MessageFormatter.arrayFormat(format,arguments);
+		logger.warn( ft.getMessage(), ft.getThrowable() );
+	}
+
+	public void warn(String format, Object arg1, Object arg2) {
+		warn(format,new Object[]{arg1,arg2});
+	}
+
+	public void warn(String format, Object arg) {
+		warn(format,new Object[]{arg});
+	}
+
+	public void info(String msg) {
+		logger.info(msg);
+	}
+
+	public void info(String msg, Throwable t) {
+		logger.info(msg,t);
+	}
+
+	public boolean isInfoEnabled() {
+		return logger.isInfoEnabled();
+	}
+
+	public void info(String format, Object... arguments) {
+		FormattingTuple ft = MessageFormatter.arrayFormat(format,arguments);
+		logger.info( ft.getMessage(), ft.getThrowable() );
+	}
+
+	public void info(String format, Object arg1, Object arg2) {
+		info(format,new Object[]{arg1,arg2});
+	}
+
+	public void info(String format, Object arg) {
+		info(format,new Object[]{arg});
+	}
+
+	public void debug(String msg) {
+		logger.debug(msg);
+	}
+
+	public void debug(String msg, Throwable t) {
+		logger.debug(msg,t);
+	}
+
+	public boolean isDebugEnabled() {
+		return logger.isDebugEnabled();
+	}
+
+	public void debug(String format, Object... arguments) {
+		FormattingTuple ft = MessageFormatter.arrayFormat(format,arguments);
+		logger.debug( ft.getMessage(), ft.getThrowable() );
+	}
+
+	public void debug(String format, Object arg1, Object arg2) {
+		debug(format,new Object[]{arg1,arg2});
+	}
+
+	public void debug(String format, Object arg) {
+		debug(format,new Object[]{arg});
+	}
+
+	public void trace(String msg) {
+	}
+
+	public void trace(String msg, Throwable t) {
+	}
+
+	public boolean isTraceEnabled() {
+		return false;
+	}
+
+	public void trace(String format, Object... arguments) {
+	}
+
+	public void trace(String format, Object arg1, Object arg2) {
+	}
+
+	public void trace(String format, Object arg) {
+	}
+
+}
diff -r 219f2b937f2b -r 1437fb1f0956 slf4j/src/org/slf4j/impl/GoodFactory.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/slf4j/src/org/slf4j/impl/GoodFactory.java	Sun Mar 08 16:50:14 2020 -0600
@@ -0,0 +1,20 @@
+package org.slf4j.impl;
+
+import java.util.Map;
+import java.util.HashMap;
+import org.slf4j.Logger;
+import org.slf4j.ILoggerFactory;
+
+
+public final class GoodFactory implements ILoggerFactory {
+	private final Map<String,Logger> map = new HashMap<String,Logger>();
+
+	public synchronized Logger getLogger(String name) {
+		Logger logger = map.get(name);
+		if( logger == null ) {
+			logger = new GoodAdapter(goodjava.logging.LoggerFactory.getLogger(name));
+			map.put(name,logger);
+		}
+		return logger;
+	}
+}
diff -r 219f2b937f2b -r 1437fb1f0956 slf4j/src/org/slf4j/impl/StaticLoggerBinder.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/slf4j/src/org/slf4j/impl/StaticLoggerBinder.java	Sun Mar 08 16:50:14 2020 -0600
@@ -0,0 +1,24 @@
+package org.slf4j.impl;
+
+import org.slf4j.ILoggerFactory;
+import org.slf4j.spi.LoggerFactoryBinder;
+
+
+public final class StaticLoggerBinder implements LoggerFactoryBinder {
+	private static final ILoggerFactory loggerFactory = new GoodFactory();
+
+	public ILoggerFactory getLoggerFactory() {
+		return loggerFactory;
+	}
+
+	public String getLoggerFactoryClassStr() {
+		return GoodFactory.class.getName();
+	}
+
+
+	private static final StaticLoggerBinder SINGLETON = new StaticLoggerBinder();
+
+	public static final StaticLoggerBinder getSingleton() {
+		return SINGLETON;
+	}
+}