package wecui;
import java.io.File;
import java.io.IOException;
import java.util.logging.ConsoleHandler;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
import wecui.exception.InitializationException;
import wecui.obfuscation.Obfuscation;
import wecui.util.ConsoleLogFormatter;
/**
* Debugging helper class
*
* @author yetanotherx
*
*/
public class CUIDebug implements InitializationFactory {
protected WorldEditCUI controller;
protected File debugFile;
protected boolean debugMode = false;
protected final static Logger logger = Logger.getLogger("WorldEditCUI");
public CUIDebug(WorldEditCUI controller) {
this.controller = controller;
}
@Override
public void initialize() throws InitializationException {
ConsoleLogFormatter formatter = new ConsoleLogFormatter();
ConsoleHandler handler = new ConsoleHandler();
handler.setFormatter(formatter);
logger.setUseParentHandlers(false);
logger.addHandler(handler);
try {
this.debugFile = new File(Obfuscation.getWorldEditCUIDir(), "WorldEditCUI-debug.txt");
this.debugMode = controller.getConfiguration().isDebugMode();
if (this.debugMode) {
FileHandler newHandler = new FileHandler(this.debugFile.getAbsolutePath());
newHandler.setFormatter(formatter);
logger.addHandler(newHandler);
}
} catch (IOException e) {
e.printStackTrace(System.err);
throw new InitializationException();
}
}
/**
* Shows a message if debug mode is true
* @param message
*/
public void debug(String message) {
if (debugMode) {
logger.info("WorldEditCUI Debug - " + message);
}
}
public void info(String message) {
logger.info(message);
}
public void info(String message, Throwable e) {
logger.log(Level.INFO, message, e);
}
}