package eu.thog92.launcher.util;
import java.io.File;
import java.util.logging.*;
public class LogAgent
{
private static LogAgent INSTANCE;
private final File logFile;
private final String loggerName;
private final String loggerPrefix;
private Logger clientLogger;
private LogAgent(String name, String prefix, File file, File file1)
{
INSTANCE = this;
this.clientLogger = Logger.getLogger(name);
this.loggerName = name;
this.loggerPrefix = prefix;
this.logFile = file;
file1.delete();
this.setupLogger();
}
static String getPrefix(LogAgent par0LogAgent)
{
return par0LogAgent.loggerPrefix;
}
public static LogAgent getLogAgent()
{
if (INSTANCE == null)
new LogAgent(Constants.getLauncherName(), "Launcher", new File(Util.getWorkingDirectory() + "/launcher.log"), new File(Util.getWorkingDirectory() + "/launcher_1.log"));
// TODO Auto-generated method stub
return INSTANCE;
}
/**
* Sets up the logger for usage.
*/
private void setupLogger()
{
LogManager.getLogManager().reset();
Handler[] ahandler = this.clientLogger.getHandlers();
for (Handler handler : ahandler)
this.clientLogger.removeHandler(handler);
LogFormatter logformatter = new LogFormatter(this);
try
{
ConsoleHandler ch = new ConsoleHandler();
ch.setFormatter(logformatter);
this.clientLogger.addHandler(ch);
this.logFile.getParentFile().mkdirs();
this.logFile.createNewFile();
FileHandler filehandler = new FileHandler(
logFile.getAbsolutePath(), true);
filehandler.setFormatter(logformatter);
this.clientLogger.addHandler(filehandler);
} catch (Exception exception)
{
this.clientLogger.log(Level.WARNING, "Failed to log "
+ this.loggerName + " to " + this.logFile, exception);
}
}
public void logInfo(String par1Str)
{
this.clientLogger.log(Level.INFO, par1Str);
}
public void logWarning(String par1Str)
{
this.clientLogger.log(Level.WARNING, par1Str);
}
public void logWarningFormatted(String par1Str, Object... par2ArrayOfObj)
{
this.clientLogger.log(Level.WARNING, par1Str, par2ArrayOfObj);
}
public void logWarningException(String par1Str, Throwable par2Throwable)
{
this.clientLogger.log(Level.WARNING, par1Str, par2Throwable);
}
public void logSevere(String par1Str)
{
this.clientLogger.log(Level.SEVERE, par1Str);
}
public void logSevereException(String par1Str, Throwable par2Throwable)
{
this.clientLogger.log(Level.SEVERE, par1Str, par2Throwable);
}
public void logFine(String par1Str)
{
this.clientLogger.log(Level.FINE, par1Str);
}
public void logDebug(String par1Str)
{
this.clientLogger.log(Level.FINEST, par1Str);
}
}