package org.lttpp.eemory.oauth.impl;
import org.eclipse.jetty.util.log.AbstractLogger;
import org.eclipse.jetty.util.log.Logger;
import org.lttpp.eemory.util.LogUtil;
public class EclipseErrorLog extends AbstractLogger {
private final String name;
public EclipseErrorLog() {
this(EclipseErrorLog.class.getName());
}
public EclipseErrorLog(final String name) {
this.name = name;
}
@Override
public void debug(final Throwable thrown) {
nop();
}
@Override
public void debug(final String message, final Object... args) {
nop();
}
@Override
public void debug(final String message, final Throwable args) {
nop();
}
@Override
public String getName() {
return name;
}
@Override
public void ignore(final Throwable thrown) {
nop();
}
@Override
public void info(final Throwable thrown) {
nop();
}
@Override
public void info(final String message, final Object... args) {
nop();
}
@Override
public void info(final String message, final Throwable args) {
nop();
}
@Override
public boolean isDebugEnabled() {
return false;
}
@Override
public void setDebugEnabled(final boolean debugEnabled) {
nop();
}
@Override
public void warn(final Throwable thrown) {
LogUtil.logWarning(thrown);
}
@Override
public void warn(final String message, final Object... args) {
LogUtil.logWarning(format(message, args));
}
@Override
public void warn(final String message, final Throwable thrown) {
LogUtil.logWarning(message, thrown);
}
@Override
protected Logger newLogger(final String name) {
return new EclipseErrorLog(name);
}
private String format(String msg, final Object... args) {
msg = String.valueOf(msg); // Avoids NPE
String braces = "{}";
StringBuilder builder = new StringBuilder();
int start = 0;
for (Object arg : args) {
int bracesIndex = msg.indexOf(braces, start);
if (bracesIndex < 0) {
builder.append(msg.substring(start));
builder.append(" ");
builder.append(arg);
start = msg.length();
} else {
builder.append(msg.substring(start, bracesIndex));
builder.append(String.valueOf(arg));
start = bracesIndex + braces.length();
}
}
builder.append(msg.substring(start));
return builder.toString();
}
private void nop() {
}
}