package com.quickserverlab.quickcached;
import org.quickserver.net.server.*;
import org.quickserver.net.ServerHook;
import java.io.*;
import org.quickserver.util.logging.*;
import java.util.logging.*;
public class SetupLoggingHook implements ServerHook {
private QuickServer quickserver;
private static boolean init;
private static boolean makeLogFile;
public String info() {
return "Init Server Hook to setup logging.";
}
public void initHook(QuickServer quickserver) {
this.quickserver = quickserver;
}
public boolean handleEvent(int event) {
if(event==ServerHook.PRE_STARTUP) {
if(init==false) {
init = true;
} else {
return false;
}
Logger logger = null;
FileHandler txtLog = null;
try {
logger = Logger.getLogger("");
logger.setLevel(Level.FINEST);
logger = Logger.getLogger("com.whirlycott");
logger.setLevel(Level.WARNING);
logger = Logger.getLogger("com.quickserverlab.quickcached");
logger.setLevel(Level.FINEST);
if(isMakeLogFile()) {
txtLog = new FileHandler("log/QuickCached_"+quickserver.getPort()+"_%u%g.txt",
1024*1024, 100, true);
txtLog.setLevel(Level.FINEST);
txtLog.setFormatter(new SimpleTextFormatter());
logger.addHandler(txtLog);
} else {
logger.setLevel(Level.WARNING);
}
quickserver.setAppLogger(logger); //img
return true;
} catch(IOException e){
System.err.println("Could not create txtLog FileHandler : "+e);
}
}
return false;
}
public static boolean isMakeLogFile() {
return makeLogFile;
}
public static void setMakeLogFile(boolean flag) {
makeLogFile = flag;
}
}