package net.minecraft.logging; import cpw.mods.fml.common.FMLLog; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import java.util.logging.ConsoleHandler; import java.util.logging.FileHandler; import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.Logger; public class LogAgent implements ILogAgent { private final Logger serverLogger; private final String logFile; private final String loggerName; private final String loggerPrefix; public LogAgent(String par1Str, String par2Str, String par3Str) { this.serverLogger = Logger.getLogger(par1Str); this.loggerName = par1Str; this.loggerPrefix = par2Str; this.logFile = par3Str; this.setupLogger(); } /** * Sets up the logger for usage. */ private void setupLogger() { this.serverLogger.setParent(FMLLog.getLogger()); Handler[] ahandler = this.serverLogger.getHandlers(); int i = ahandler.length; for (int j = 0; j < i; ++j) { Handler handler = ahandler[j]; this.serverLogger.removeHandler(handler); } LogFormatter logformatter = new LogFormatter(this, (LogAgentINNER1)null); try { FileHandler filehandler = new FileHandler(this.logFile, true); filehandler.setFormatter(logformatter); this.serverLogger.addHandler(filehandler); } catch (Exception exception) { this.serverLogger.log(Level.WARNING, "Failed to log " + this.loggerName + " to " + this.logFile, exception); } } public void logInfo(String par1Str) { this.serverLogger.log(Level.INFO, par1Str); } @SideOnly(Side.SERVER) public Logger getServerLogger() { return this.serverLogger; } public void logWarning(String par1Str) { this.serverLogger.log(Level.WARNING, par1Str); } public void logWarningFormatted(String par1Str, Object ... par2ArrayOfObj) { this.serverLogger.log(Level.WARNING, par1Str, par2ArrayOfObj); } public void logWarningException(String par1Str, Throwable par2Throwable) { this.serverLogger.log(Level.WARNING, par1Str, par2Throwable); } public void logSevere(String par1Str) { this.serverLogger.log(Level.SEVERE, par1Str); } public void logSevereException(String par1Str, Throwable par2Throwable) { this.serverLogger.log(Level.SEVERE, par1Str, par2Throwable); } @SideOnly(Side.CLIENT) public void logFine(String par1Str) { this.serverLogger.log(Level.FINE, par1Str); } static String func_98237_a(LogAgent par0LogAgent) { return par0LogAgent.loggerPrefix; } }