/**
* $Id: JameicaLoggerAdapter.java,v 1.3 2008/08/08 11:24:48 willuhn Exp $
*/
package org.slf4j.impl;
import java.util.logging.ConsoleHandler;
import java.util.logging.Handler;
import org.slf4j.Marker;
import de.willuhn.logging.Level;
import de.willuhn.logging.Logger;
/**
* @author Markus Wolf <markus@emedia-solutions-wolf.de>
*/
public class JameicaLoggerAdapter implements org.slf4j.Logger {
static
{
// Wir deaktivieren den Console-Logger aus, weil wir
// die ganzen Ausgaben durch Jameica ohnehin schon dort
// haben und sonst doppelt haetten
java.util.logging.Logger logger = java.util.logging.Logger.getLogger("");
Handler[] handlers = logger.getHandlers();
if (handlers != null)
{
for (int i=0;i<handlers.length;++i)
{
if (handlers[i] == null)
continue;
if (handlers[i] instanceof ConsoleHandler)
{
Logger.info("disable console logging for java logging");
handlers[i].setLevel(java.util.logging.Level.OFF);
}
}
}
}
/**
* @see org.slf4j.Logger#debug(org.slf4j.Marker, java.lang.String,
* java.lang.Object, java.lang.Object)
*/
public void debug(Marker marker, String s, Object obj, Object obj1) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#debug(org.slf4j.Marker, java.lang.String,
* java.lang.Object)
*/
public void debug(Marker marker, String s, Object obj) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#debug(org.slf4j.Marker, java.lang.String,
* java.lang.Object[])
*/
public void debug(Marker marker, String s, Object[] aobj) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#debug(org.slf4j.Marker, java.lang.String,
* java.lang.Throwable)
*/
public void debug(Marker marker, String s, Throwable throwable) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#debug(org.slf4j.Marker, java.lang.String)
*/
public void debug(Marker marker, String s) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#debug(java.lang.String, java.lang.Object,
* java.lang.Object)
*/
public void debug(String s, Object obj, Object obj1) {
debug(replace(s, obj, obj1));
}
/**
* @see org.slf4j.Logger#debug(java.lang.String, java.lang.Object)
*/
public void debug(String s, Object obj) {
debug(replace(s, obj));
}
/**
* @see org.slf4j.Logger#debug(java.lang.String, java.lang.Object[])
*/
public void debug(String s, Object[] aobj) {
debug(replace(s, aobj));
}
/**
* @see org.slf4j.Logger#debug(java.lang.String, java.lang.Throwable)
*/
public void debug(String s, Throwable throwable) {
Logger.write(Level.DEBUG, s, throwable);
}
/**
* @see org.slf4j.Logger#debug(java.lang.String)
*/
public void debug(String s) {
Logger.debug(s);
}
/**
* @see org.slf4j.Logger#error(org.slf4j.Marker, java.lang.String,
* java.lang.Object, java.lang.Object)
*/
public void error(Marker marker, String s, Object obj, Object obj1) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#error(org.slf4j.Marker, java.lang.String,
* java.lang.Object)
*/
public void error(Marker marker, String s, Object obj) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#error(org.slf4j.Marker, java.lang.String,
* java.lang.Object[])
*/
public void error(Marker marker, String s, Object[] aobj) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#error(org.slf4j.Marker, java.lang.String,
* java.lang.Throwable)
*/
public void error(Marker marker, String s, Throwable throwable) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#error(org.slf4j.Marker, java.lang.String)
*/
public void error(Marker marker, String s) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#error(java.lang.String, java.lang.Object,
* java.lang.Object)
*/
public void error(String s, Object obj, Object obj1) {
error(replace(s, obj, obj1));
}
/**
* @see org.slf4j.Logger#error(java.lang.String, java.lang.Object)
*/
public void error(String s, Object obj) {
error(replace(s, obj));
}
/**
* @see org.slf4j.Logger#error(java.lang.String, java.lang.Object[])
*/
public void error(String s, Object[] aobj) {
error(replace(s, aobj));
}
/**
* @see org.slf4j.Logger#error(java.lang.String, java.lang.Throwable)
*/
public void error(String s, Throwable throwable) {
Logger.write(Level.ERROR, s, throwable);
}
/**
* @see org.slf4j.Logger#error(java.lang.String)
*/
public void error(String s) {
Logger.error(s);
}
/**
* @see org.slf4j.Logger#getName()
*/
public String getName() {
return "Jameica Logger"; //$NON-NLS-1$
}
/**
* @see org.slf4j.Logger#info(org.slf4j.Marker, java.lang.String,
* java.lang.Object, java.lang.Object)
*/
public void info(Marker marker, String s, Object obj, Object obj1) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#info(org.slf4j.Marker, java.lang.String,
* java.lang.Object)
*/
public void info(Marker marker, String s, Object obj) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#info(org.slf4j.Marker, java.lang.String,
* java.lang.Object[])
*/
public void info(Marker marker, String s, Object[] aobj) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#info(org.slf4j.Marker, java.lang.String,
* java.lang.Throwable)
*/
public void info(Marker marker, String s, Throwable throwable) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#info(org.slf4j.Marker, java.lang.String)
*/
public void info(Marker marker, String s) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#info(java.lang.String, java.lang.Object,
* java.lang.Object)
*/
public void info(String s, Object obj, Object obj1) {
info(replace(s, obj, obj1));
}
/**
* @see org.slf4j.Logger#info(java.lang.String, java.lang.Object)
*/
public void info(String s, Object obj) {
info(replace(s, obj));
}
/**
* @see org.slf4j.Logger#info(java.lang.String, java.lang.Object[])
*/
public void info(String s, Object[] aobj) {
info(replace(s, aobj));
}
/**
* @see org.slf4j.Logger#info(java.lang.String, java.lang.Throwable)
*/
public void info(String s, Throwable throwable) {
Logger.write(Level.INFO, s, throwable);
}
/**
* @see org.slf4j.Logger#info(java.lang.String)
*/
public void info(String s) {
Logger.debug(s);
}
/**
* @see org.slf4j.Logger#isDebugEnabled()
*/
public boolean isDebugEnabled() {
return isEnabled(Level.DEBUG);
}
/**
* @see org.slf4j.Logger#isDebugEnabled(org.slf4j.Marker)
*/
public boolean isDebugEnabled(Marker marker) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#isErrorEnabled()
*/
public boolean isErrorEnabled() {
return isEnabled(Level.ERROR);
}
/**
* @see org.slf4j.Logger#isErrorEnabled(org.slf4j.Marker)
*/
public boolean isErrorEnabled(Marker marker) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#isInfoEnabled()
*/
public boolean isInfoEnabled() {
return isEnabled(Level.INFO);
}
/**
* @see org.slf4j.Logger#isInfoEnabled(org.slf4j.Marker)
*/
public boolean isInfoEnabled(Marker marker) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#isTraceEnabled()
*/
public boolean isTraceEnabled() {
return isEnabled(Level.DEBUG);
}
/**
* @see org.slf4j.Logger#isTraceEnabled(org.slf4j.Marker)
*/
public boolean isTraceEnabled(Marker marker) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#isWarnEnabled()
*/
public boolean isWarnEnabled() {
return isEnabled(Level.WARN);
}
/**
* @see org.slf4j.Logger#isWarnEnabled(org.slf4j.Marker)
*/
public boolean isWarnEnabled(Marker marker) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#trace(org.slf4j.Marker, java.lang.String,
* java.lang.Object, java.lang.Object)
*/
public void trace(Marker marker, String s, Object obj, Object obj1) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#trace(org.slf4j.Marker, java.lang.String,
* java.lang.Object)
*/
public void trace(Marker marker, String s, Object obj) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#trace(org.slf4j.Marker, java.lang.String,
* java.lang.Object[])
*/
public void trace(Marker marker, String s, Object[] aobj) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#trace(org.slf4j.Marker, java.lang.String,
* java.lang.Throwable)
*/
public void trace(Marker marker, String s, Throwable throwable) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#trace(org.slf4j.Marker, java.lang.String)
*/
public void trace(Marker marker, String s) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#trace(java.lang.String, java.lang.Object,
* java.lang.Object)
*/
public void trace(String s, Object obj, Object obj1) {
debug(replace(s, obj, obj1));
}
/**
* @see org.slf4j.Logger#trace(java.lang.String, java.lang.Object)
*/
public void trace(String s, Object obj) {
debug(replace(s, obj));
}
/**
* @see org.slf4j.Logger#trace(java.lang.String, java.lang.Object[])
*/
public void trace(String s, Object[] aobj) {
debug(replace(s, aobj));
}
/**
* @see org.slf4j.Logger#trace(java.lang.String, java.lang.Throwable)
*/
public void trace(String s, Throwable throwable) {
Logger.write(Level.DEBUG, s, throwable);
}
/**
* @see org.slf4j.Logger#trace(java.lang.String)
*/
public void trace(String s) {
Logger.debug(s);
}
/**
* @see org.slf4j.Logger#warn(org.slf4j.Marker, java.lang.String,
* java.lang.Object, java.lang.Object)
*/
public void warn(Marker marker, String s, Object obj, Object obj1) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#warn(org.slf4j.Marker, java.lang.String,
* java.lang.Object)
*/
public void warn(Marker marker, String s, Object obj) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#warn(org.slf4j.Marker, java.lang.String,
* java.lang.Object[])
*/
public void warn(Marker marker, String s, Object[] aobj) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#warn(org.slf4j.Marker, java.lang.String,
* java.lang.Throwable)
*/
public void warn(Marker marker, String s, Throwable throwable) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#warn(org.slf4j.Marker, java.lang.String)
*/
public void warn(Marker marker, String s) {
throw new UnsupportedOperationException();
}
/**
* @see org.slf4j.Logger#warn(java.lang.String, java.lang.Object,
* java.lang.Object)
*/
public void warn(String s, Object obj, Object obj1) {
warn(replace(s, obj, obj1));
}
/**
* @see org.slf4j.Logger#warn(java.lang.String, java.lang.Object)
*/
public void warn(String s, Object obj) {
warn(replace(s, obj));
}
/**
* @see org.slf4j.Logger#warn(java.lang.String, java.lang.Object[])
*/
public void warn(String s, Object[] aobj) {
warn(replace(s, aobj));
}
/**
* @see org.slf4j.Logger#warn(java.lang.String, java.lang.Throwable)
*/
public void warn(String s, Throwable throwable) {
Logger.write(Level.WARN, s, throwable);
}
/**
* @see org.slf4j.Logger#warn(java.lang.String)
*/
public void warn(String s) {
Logger.warn(s);
}
/**
* Prueft, ob das angegebene Level Verwendung findet.
* @param level zu pruefendes Level.
* @return true, wenn es aktiv ist.
*/
private boolean isEnabled(Level level) {
return Logger.getLevel().getValue() <= level.getValue();
}
/**
* Fuellt Platzhalter.
* @param s Text mit Platzhaltern.
* @param param Wert 1 fuer die Platzhalter.
* @return der ersetzte Text.
*/
private String replace(String s, Object param) {
return replace(s,new Object[]{param});
}
/**
* Fuellt Platzhalter.
* @param s Text mit Platzhaltern.
* @param param1 Wert 1 fuer die Platzhalter.
* @param param2 Wert 1 fuer die Platzhalter.
* @return der ersetzte Text.
*/
private String replace(String s, Object param1, Object param2) {
return replace(s,new Object[]{param1,param2});
}
/**
* Fuellt Platzhalter.
* @param s Text mit Platzhaltern.
* @param params Werte fuer die Platzhalter.
* @return der ersetzte Text.
*/
private String replace(String s, Object[] params) {
for (int i=0;i<params.length;++i) {
String v = "";
if (params[i] != null) {
v = params[i].toString();
if (v.contains("$")) {
v = v.replace("$", "\\$");
}
}
s = s.replaceFirst("\\{\\}", v);
}
return s;
}
}