package gwtupload.server;
import java.util.Date;
import java.util.logging.Level;
public class UploadLogger {
public static interface ILogger {
void debug(Object o);
void info(Object o);
void error(Object o);
void debug(Object o, Throwable t);
void info(Object o, Throwable t);
void error(Object o, Throwable t);
}
static class StderrLogger implements ILogger {
String name = "";
StderrLogger(String name) {
this.name = name;
}
public void debug(Object o) {
System.out.println(new Date() + " " + name + " DEBUG: " + o);
}
public void info(Object o) {
System.out.println(new Date() + " " + name + " INFO: " + o);
}
public void error(Object o) {
System.err.println(new Date() + " " + name + " ERROR: " + o);
}
public void debug(Object o, Throwable t) {
debug(o);
}
public void info(Object o, Throwable t) {
info(o);
}
public void error(Object o, Throwable t) {
error(o);
}
}
static class Log4jLogger implements ILogger {
org.apache.log4j.Logger logger;
protected Log4jLogger(String name) {
logger = org.apache.log4j.Logger.getLogger(name);
}
public void debug(Object o) {
logger.debug(o);
}
public void info(Object o) {
logger.info(o);
}
public void error(Object o) {
logger.error(o);
}
public void debug(Object o, Throwable t) {
logger.debug(o, t);
}
public void error(Object o, Throwable t) {
logger.error(o, t);
}
public void info(Object o, Throwable t) {
logger.info(o, t);
}
}
static class JavaLogger implements ILogger {
java.util.logging.Logger logger;
protected JavaLogger(String name) {
logger = java.util.logging.Logger.getLogger(name);
}
public void debug(Object o) {
logger.log(Level.FINE, o.toString());
}
public void info(Object o) {
logger.log(Level.INFO, o.toString());
}
public void error(Object o) {
logger.log(Level.SEVERE, o.toString());
}
public void debug(Object o, Throwable t) {
logger.log(Level.FINE, o.toString(), t);
}
public void info(Object o, Throwable t) {
logger.log(Level.INFO, o.toString(), t);
}
public void error(Object o, Throwable t) {
logger.log(Level.SEVERE, o.toString(), t);
}
}
ILogger logger;
private UploadLogger(String name) {
try {
Class.forName("org.apache.log4j.Logger");
logger = new Log4jLogger(name);
} catch (ClassNotFoundException e1) {
try {
Class.forName("java.util.logging.Logger");
logger = new JavaLogger(name);
} catch (ClassNotFoundException e2) {
logger = new StderrLogger(name);
}
}
}
public static UploadLogger getLogger(Class<?> class1) {
return new UploadLogger(class1.getName());
}
public void debug(Object o) {
logger.debug(o);
}
public void info(Object o) {
logger.info(o);
}
public void error(Object o) {
logger.error(o);
}
public void debug(Object o, Throwable t) {
logger.debug(o, t);
}
public void error(Object o, Throwable t) {
logger.error(o, t);
}
public void info(Object o, Throwable t) {
logger.info(o, t);
}
}