001package net.minecraft.logging; 002 003import cpw.mods.fml.common.FMLLog; 004import cpw.mods.fml.relauncher.Side; 005import cpw.mods.fml.relauncher.SideOnly; 006import java.util.logging.ConsoleHandler; 007import java.util.logging.FileHandler; 008import java.util.logging.Handler; 009import java.util.logging.Level; 010import java.util.logging.Logger; 011 012public class LogAgent implements ILogAgent 013{ 014 private final Logger serverLogger; 015 private final String logFile; 016 private final String loggerName; 017 private final String loggerPrefix; 018 019 public LogAgent(String par1Str, String par2Str, String par3Str) 020 { 021 this.serverLogger = Logger.getLogger(par1Str); 022 this.loggerName = par1Str; 023 this.loggerPrefix = par2Str; 024 this.logFile = par3Str; 025 this.setupLogger(); 026 } 027 028 /** 029 * Sets up the logger for usage. 030 */ 031 private void setupLogger() 032 { 033 this.serverLogger.setParent(FMLLog.getLogger()); 034 Handler[] ahandler = this.serverLogger.getHandlers(); 035 int i = ahandler.length; 036 037 for (int j = 0; j < i; ++j) 038 { 039 Handler handler = ahandler[j]; 040 this.serverLogger.removeHandler(handler); 041 } 042 043 LogFormatter logformatter = new LogFormatter(this, (LogAgentINNER1)null); 044 try 045 { 046 FileHandler filehandler = new FileHandler(this.logFile, true); 047 filehandler.setFormatter(logformatter); 048 this.serverLogger.addHandler(filehandler); 049 } 050 catch (Exception exception) 051 { 052 this.serverLogger.log(Level.WARNING, "Failed to log " + this.loggerName + " to " + this.logFile, exception); 053 } 054 } 055 056 public void logInfo(String par1Str) 057 { 058 this.serverLogger.log(Level.INFO, par1Str); 059 } 060 061 @SideOnly(Side.SERVER) 062 public Logger getServerLogger() 063 { 064 return this.serverLogger; 065 } 066 067 public void logWarning(String par1Str) 068 { 069 this.serverLogger.log(Level.WARNING, par1Str); 070 } 071 072 public void logWarningFormatted(String par1Str, Object ... par2ArrayOfObj) 073 { 074 this.serverLogger.log(Level.WARNING, par1Str, par2ArrayOfObj); 075 } 076 077 public void logWarningException(String par1Str, Throwable par2Throwable) 078 { 079 this.serverLogger.log(Level.WARNING, par1Str, par2Throwable); 080 } 081 082 public void logSevere(String par1Str) 083 { 084 this.serverLogger.log(Level.SEVERE, par1Str); 085 } 086 087 public void logSevereException(String par1Str, Throwable par2Throwable) 088 { 089 this.serverLogger.log(Level.SEVERE, par1Str, par2Throwable); 090 } 091 092 @SideOnly(Side.CLIENT) 093 public void logFine(String par1Str) 094 { 095 this.serverLogger.log(Level.FINE, par1Str); 096 } 097 098 static String func_98237_a(LogAgent par0LogAgent) 099 { 100 return par0LogAgent.loggerPrefix; 101 } 102}