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 field_98242_a; 015 private final String field_98240_b; 016 private final String field_98241_c; 017 private final String field_98239_d; 018 019 public LogAgent(String par1Str, String par2Str, String par3Str) 020 { 021 this.field_98242_a = Logger.getLogger(par1Str); 022 this.field_98241_c = par1Str; 023 this.field_98239_d = par2Str; 024 this.field_98240_b = par3Str; 025 this.func_98238_b(); 026 } 027 028 private void func_98238_b() 029 { 030 this.field_98242_a.setParent(FMLLog.getLogger()); 031 Handler[] ahandler = this.field_98242_a.getHandlers(); 032 int i = ahandler.length; 033 034 for (int j = 0; j < i; ++j) 035 { 036 Handler handler = ahandler[j]; 037 this.field_98242_a.removeHandler(handler); 038 } 039 040 LogFormatter logformatter = new LogFormatter(this, (LogAgentINNER1)null); 041 try 042 { 043 FileHandler filehandler = new FileHandler(this.field_98240_b, true); 044 filehandler.setFormatter(logformatter); 045 this.field_98242_a.addHandler(filehandler); 046 } 047 catch (Exception exception) 048 { 049 this.field_98242_a.log(Level.WARNING, "Failed to log " + this.field_98241_c + " to " + this.field_98240_b, exception); 050 } 051 } 052 053 public void logInfo(String par1Str) 054 { 055 this.field_98242_a.log(Level.INFO, par1Str); 056 } 057 058 @SideOnly(Side.SERVER) 059 public Logger func_98076_a() 060 { 061 return this.field_98242_a; 062 } 063 064 public void logWarning(String par1Str) 065 { 066 this.field_98242_a.log(Level.WARNING, par1Str); 067 } 068 069 public void func_98231_b(String par1Str, Object ... par2ArrayOfObj) 070 { 071 this.field_98242_a.log(Level.WARNING, par1Str, par2ArrayOfObj); 072 } 073 074 public void func_98235_b(String par1Str, Throwable par2Throwable) 075 { 076 this.field_98242_a.log(Level.WARNING, par1Str, par2Throwable); 077 } 078 079 public void func_98232_c(String par1Str) 080 { 081 this.field_98242_a.log(Level.SEVERE, par1Str); 082 } 083 084 public void func_98234_c(String par1Str, Throwable par2Throwable) 085 { 086 this.field_98242_a.log(Level.SEVERE, par1Str, par2Throwable); 087 } 088 089 @SideOnly(Side.CLIENT) 090 public void func_98230_d(String par1Str) 091 { 092 this.field_98242_a.log(Level.FINE, par1Str); 093 } 094 095 static String func_98237_a(LogAgent par0LogAgent) 096 { 097 return par0LogAgent.field_98239_d; 098 } 099}