package org.ovirt.engine.core.compat;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* GWT Override for LogCompat - uses {@link StringFormat#formatDotNet(String, Object...)}
*/
public class LogCompat {
private final Logger log;
public LogCompat(Logger log) {
this.log = log;
}
public void debug(Object message) {
log.log(Level.FINE, message.toString());
}
public void debug(Object message, Throwable arg1) {
log.log(Level.FINE, message.toString(), arg1);
}
public void error(Object message) {
log.log(Level.SEVERE, message.toString());
}
public void error(Object message, Throwable arg1) {
log.log(Level.SEVERE, message.toString(), arg1);
}
public void fatal(Object message) {
log.log(Level.SEVERE, message.toString());
}
public void fatal(Object message, Throwable arg1) {
log.log(Level.SEVERE, message.toString(), arg1);
}
public void info(Object message) {
log.log(Level.INFO, message.toString());
}
public void info(Object message, Throwable arg1) {
log.log(Level.INFO, message.toString(), arg1);
}
public void trace(Object message) {
log.log(Level.FINER, message.toString());
}
public void trace(Object message, Throwable arg1) {
log.log(Level.FINER, message.toString(), arg1);
}
public void warn(Object message) {
log.log(Level.WARNING, message.toString());
}
public void warn(Object message, Throwable arg1) {
log.log(Level.WARNING, message.toString(), arg1);
}
public void debugFormat(String formatString, Object... args) {
if (isDebugEnabled()) {
Throwable throwable = extractException(args);
if (throwable != null) {
debug(transform(formatString, args), throwable);
} else {
debug(transform(formatString, args));
}
}
}
public void errorFormat(String formatString, Object... args) {
Throwable throwable = extractException(args);
if (throwable != null) {
error(transform(formatString, args), throwable);
} else {
error(transform(formatString, args));
}
}
public void fatalFormat(String formatString, Object... args) {
Throwable throwable = extractException(args);
if (throwable != null) {
error(transform(formatString, args), throwable);
} else {
error(transform(formatString, args));
}
}
public void infoFormat(String formatString, Object... args) {
Throwable throwable = extractException(args);
if (throwable != null) {
info(transform(formatString, args), throwable);
} else {
info(transform(formatString, args));
}
}
public void traceFormat(String formatString, Object... args) {
if (isTraceEnabled()) {
Throwable throwable = extractException(args);
if (throwable != null) {
trace(transform(formatString, args), throwable);
} else {
trace(transform(formatString, args));
}
}
}
public void warnFormat(String formatString, Object... args) {
Throwable throwable = extractException(args);
if (throwable != null) {
warn(transform(formatString, args), throwable);
} else {
warn(transform(formatString, args));
}
}
public boolean isDebugEnabled() {
return log.isLoggable(Level.FINE);
}
public boolean isErrorEnabled() {
return log.isLoggable(Level.SEVERE);
}
public boolean isFatalEnabled() {
return log.isLoggable(Level.SEVERE);
}
public boolean isInfoEnabled() {
return log.isLoggable(Level.INFO);
}
public boolean isTraceEnabled() {
return log.isLoggable(Level.FINER);
}
public boolean isWarnEnabled() {
return log.isLoggable(Level.WARNING);
}
private Throwable extractException(Object... args) {
for (Object arg : args) {
if (arg instanceof Throwable) {
return (Throwable) arg;
}
}
return null;
}
private String transform(String formatString, Object... args) {
formatString = formatString.replaceAll("'", "");
return StringFormat.formatDotNet(formatString, args);
}
}