You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
3.0 KiB
Java
115 lines
3.0 KiB
Java
/*
|
|
* Forge Mod Loader
|
|
* Copyright (c) 2012-2013 cpw.
|
|
* All rights reserved. This program and the accompanying materials
|
|
* are made available under the terms of the GNU Lesser Public License v2.1
|
|
* which accompanies this distribution, and is available at
|
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
|
*
|
|
* Contributors:
|
|
* cpw - implementation
|
|
*/
|
|
|
|
package cpw.mods.fml.relauncher;
|
|
|
|
import java.io.File;
|
|
import java.util.Locale;
|
|
|
|
import org.apache.logging.log4j.Level;
|
|
import org.apache.logging.log4j.LogManager;
|
|
import org.apache.logging.log4j.Logger;
|
|
import org.apache.logging.log4j.ThreadContext;
|
|
|
|
import cpw.mods.fml.common.TracingPrintStream;
|
|
|
|
public class FMLRelaunchLog {
|
|
|
|
/**
|
|
* Our special logger for logging issues to. We copy various assets from the
|
|
* Minecraft logger to achieve a similar appearance.
|
|
*/
|
|
public static FMLRelaunchLog log = new FMLRelaunchLog();
|
|
|
|
static File minecraftHome;
|
|
private static boolean configured;
|
|
|
|
private Logger myLog;
|
|
|
|
static Side side;
|
|
|
|
private FMLRelaunchLog()
|
|
{
|
|
}
|
|
|
|
/**
|
|
* Configure the FML logger and inject tracing printstreams.
|
|
*/
|
|
private static void configureLogging()
|
|
{
|
|
log.myLog = LogManager.getLogger("FML");
|
|
ThreadContext.put("side", side.name().toLowerCase(Locale.ENGLISH));
|
|
configured = true;
|
|
|
|
FMLRelaunchLog.fine("Injecting tracing printstreams for STDOUT/STDERR.");
|
|
System.setOut(new TracingPrintStream(LogManager.getLogger("STDOUT"), System.out));
|
|
System.setErr(new TracingPrintStream(LogManager.getLogger("STDERR"), System.err));
|
|
}
|
|
|
|
public static void log(String targetLog, Level level, String format, Object... data)
|
|
{
|
|
LogManager.getLogger(targetLog).log(level, String.format(format, data));
|
|
}
|
|
|
|
public static void log(Level level, String format, Object... data)
|
|
{
|
|
if (!configured)
|
|
{
|
|
configureLogging();
|
|
}
|
|
log.myLog.log(level, String.format(format, data));
|
|
}
|
|
|
|
public static void log(String targetLog, Level level, Throwable ex, String format, Object... data)
|
|
{
|
|
LogManager.getLogger(targetLog).log(level, String.format(format, data), ex);
|
|
}
|
|
|
|
public static void log(Level level, Throwable ex, String format, Object... data)
|
|
{
|
|
if (!configured)
|
|
{
|
|
configureLogging();
|
|
}
|
|
log.myLog.log(level, String.format(format, data), ex);
|
|
}
|
|
|
|
public static void severe(String format, Object... data)
|
|
{
|
|
log(Level.ERROR, format, data);
|
|
}
|
|
|
|
public static void warning(String format, Object... data)
|
|
{
|
|
log(Level.WARN, format, data);
|
|
}
|
|
|
|
public static void info(String format, Object... data)
|
|
{
|
|
log(Level.INFO, format, data);
|
|
}
|
|
|
|
public static void fine(String format, Object... data)
|
|
{
|
|
log(Level.DEBUG, format, data);
|
|
}
|
|
|
|
public static void finer(String format, Object... data)
|
|
{
|
|
log(Level.TRACE, format, data);
|
|
}
|
|
|
|
public Logger getLogger()
|
|
{
|
|
return myLog;
|
|
}
|
|
} |