package net.jxta.logging;
import java.util.logging.Level;
public class JavaUtilLoggingLogger implements Logger {
// Convert "xx {} yy {} zz" to "xx {0} yy {1} zz"
static String slf4jFormatToJULFormat(final String slf4jFormat) {
if (slf4jFormat == null) {
return null;
}
final StringBuilder sb = new StringBuilder();
int markerCount = 0;
for (int i = 0; i < slf4jFormat.length(); i++) {
final char ch = slf4jFormat.charAt(i);
sb.append(ch);
if (ch == '{') {
if (i != slf4jFormat.length() - 1) {
if (slf4jFormat.charAt(i + 1) == '}') {
sb.append(markerCount ++);
sb.append('}');
i++;
}
}
}
}
return sb.toString();
}
private final java.util.logging.Logger logger;
public JavaUtilLoggingLogger(final String className) {
logger = java.util.logging.Logger.getLogger(className);
}
public JavaUtilLoggingLogger(final Class<?> loggerClass) {
this(loggerClass.getName());
}
public boolean isDebugEnabled() {
return logger.isLoggable(Level.FINE);
}
public void debug(final String message) {
logger.fine(message);
}
public void debugParams(String format, Object... params) {
logger.log(Level.FINE, JavaUtilLoggingLogger.slf4jFormatToJULFormat(format), params);
}
public void info(final String message, final Throwable t) {
logger.log(Level.INFO, message, t);
}
public void infoParams(final String format, final Object... params) {
logger.log(Level.INFO, JavaUtilLoggingLogger.slf4jFormatToJULFormat(format), params);
}
public boolean isInfoEnabled() {
return logger.isLoggable(Level.INFO);
}
public void info(final String message) {
logger.info(message);
}
public void warn(final String message) {
logger.warning(message);
}
public void warn(final String message, final Throwable t) {
logger.log(Level.WARNING, message, t);
}
public void warnParams(final String format, final Object... params) {
logger.log(Level.WARNING, JavaUtilLoggingLogger.slf4jFormatToJULFormat(format), params);
}
public boolean isWarnEnabled() {
return logger.isLoggable(Level.WARNING);
}
public void error(final String message) {
logger.severe(message);
}
public void error(final String message, final Throwable t) {
logger.log(Level.SEVERE, message, t);
}
public boolean isErrorEnabled() {
return logger.isLoggable(Level.SEVERE);
}
public boolean isConfigEnabled() {
// TODO work out what to do here - just log as fine for now
return logger.isLoggable(Level.FINE);
}
public void config(final String message) {
// TODO work out what to do here - just log as fine for now
logger.fine(message);
}
}