mirror of
https://github.com/Eaglercraft-Archive/Eaglercraftx-1.8.8-src.git
synced 2025-06-27 18:38:14 -05:00
Update #0 - First Release
This commit is contained in:
@ -0,0 +1,38 @@
|
||||
package net.lax1dude.eaglercraft.v1_8.log4j;
|
||||
|
||||
import java.io.PrintStream;
|
||||
|
||||
/**
|
||||
* Copyright (c) 2022 LAX1DUDE. All Rights Reserved.
|
||||
*
|
||||
* WITH THE EXCEPTION OF PATCH FILES, MINIFIED JAVASCRIPT, AND ALL FILES
|
||||
* NORMALLY FOUND IN AN UNMODIFIED MINECRAFT RESOURCE PACK, YOU ARE NOT ALLOWED
|
||||
* TO SHARE, DISTRIBUTE, OR REPURPOSE ANY FILE USED BY OR PRODUCED BY THE
|
||||
* SOFTWARE IN THIS REPOSITORY WITHOUT PRIOR PERMISSION FROM THE PROJECT AUTHOR.
|
||||
*
|
||||
* NOT FOR COMMERCIAL OR MALICIOUS USE
|
||||
*
|
||||
* (please read the 'LICENSE' file this repo's root directory for more info)
|
||||
*
|
||||
*/
|
||||
public enum Level {
|
||||
|
||||
TRACE(0, "TRACE", false), DEBUG(1, "DEBUG", false), INFO(2, "INFO", false),
|
||||
WARN(3, "WARN", false), ERROR(4, "ERROR", true), FATAL(5, "FATAL", true),
|
||||
OFF(Integer.MAX_VALUE, "DISABLED", false);
|
||||
|
||||
public final int levelInt;
|
||||
public final String levelName;
|
||||
public final PrintStream stdout;
|
||||
|
||||
private Level(int levelInt, String levelName, boolean stderr) {
|
||||
this.levelInt = levelInt;
|
||||
this.levelName = levelName;
|
||||
this.stdout = stderr ? System.err : System.out;
|
||||
}
|
||||
|
||||
PrintStream getPrintStream() {
|
||||
return stdout;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
package net.lax1dude.eaglercraft.v1_8.log4j;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Copyright (c) 2022 LAX1DUDE. All Rights Reserved.
|
||||
*
|
||||
* WITH THE EXCEPTION OF PATCH FILES, MINIFIED JAVASCRIPT, AND ALL FILES
|
||||
* NORMALLY FOUND IN AN UNMODIFIED MINECRAFT RESOURCE PACK, YOU ARE NOT ALLOWED
|
||||
* TO SHARE, DISTRIBUTE, OR REPURPOSE ANY FILE USED BY OR PRODUCED BY THE
|
||||
* SOFTWARE IN THIS REPOSITORY WITHOUT PRIOR PERMISSION FROM THE PROJECT AUTHOR.
|
||||
*
|
||||
* NOT FOR COMMERCIAL OR MALICIOUS USE
|
||||
*
|
||||
* (please read the 'LICENSE' file this repo's root directory for more info)
|
||||
*
|
||||
*/
|
||||
public class LogManager {
|
||||
|
||||
private static final Map<String,Logger> loggerInstances = new HashMap();
|
||||
|
||||
public static final Object logLock = new Object();
|
||||
public static Level logLevel = Level.DEBUG;
|
||||
|
||||
public static Logger getLogger() {
|
||||
return getLogger("Minecraft");
|
||||
}
|
||||
|
||||
public static Logger getLogger(String name) {
|
||||
Logger ret;
|
||||
synchronized(loggerInstances) {
|
||||
ret = loggerInstances.get(name);
|
||||
if(ret == null) {
|
||||
ret = new Logger(name);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static void setLevel(Level lv) {
|
||||
logLevel = lv;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,168 @@
|
||||
package net.lax1dude.eaglercraft.v1_8.log4j;
|
||||
|
||||
import java.io.PrintStream;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import net.lax1dude.eaglercraft.v1_8.EagRuntime;
|
||||
import net.lax1dude.eaglercraft.v1_8.internal.PlatformRuntime;
|
||||
|
||||
/**
|
||||
* Copyright (c) 2022 LAX1DUDE. All Rights Reserved.
|
||||
*
|
||||
* WITH THE EXCEPTION OF PATCH FILES, MINIFIED JAVASCRIPT, AND ALL FILES
|
||||
* NORMALLY FOUND IN AN UNMODIFIED MINECRAFT RESOURCE PACK, YOU ARE NOT ALLOWED
|
||||
* TO SHARE, DISTRIBUTE, OR REPURPOSE ANY FILE USED BY OR PRODUCED BY THE
|
||||
* SOFTWARE IN THIS REPOSITORY WITHOUT PRIOR PERMISSION FROM THE PROJECT AUTHOR.
|
||||
*
|
||||
* NOT FOR COMMERCIAL OR MALICIOUS USE
|
||||
*
|
||||
* (please read the 'LICENSE' file this repo's root directory for more info)
|
||||
*
|
||||
*/
|
||||
public class Logger {
|
||||
|
||||
public final String loggerName;
|
||||
|
||||
Logger(String name) {
|
||||
this.loggerName = name;
|
||||
}
|
||||
|
||||
public void trace(String msg) {
|
||||
log(Level.TRACE, msg);
|
||||
}
|
||||
|
||||
public void trace(String msg, Object... args) {
|
||||
log(Level.TRACE, msg, args);
|
||||
}
|
||||
|
||||
public void trace(Throwable msg) {
|
||||
log(Level.WARN, msg);
|
||||
}
|
||||
|
||||
public void debug(String msg) {
|
||||
log(Level.DEBUG, msg);
|
||||
}
|
||||
|
||||
public void debug(String msg, Object... args) {
|
||||
log(Level.DEBUG, msg, args);
|
||||
}
|
||||
|
||||
public void debug(Throwable msg) {
|
||||
log(Level.DEBUG, msg);
|
||||
}
|
||||
|
||||
public void info(String msg) {
|
||||
log(Level.INFO, msg);
|
||||
}
|
||||
|
||||
public void info(String msg, Object... args) {
|
||||
log(Level.INFO, msg, args);
|
||||
}
|
||||
|
||||
public void info(Throwable msg) {
|
||||
log(Level.INFO, msg);
|
||||
}
|
||||
|
||||
public void warn(String msg) {
|
||||
log(Level.WARN, msg);
|
||||
}
|
||||
|
||||
public void warn(String msg, Object... args) {
|
||||
log(Level.WARN, msg, args);
|
||||
}
|
||||
|
||||
public void warn(Throwable msg) {
|
||||
log(Level.WARN, msg);
|
||||
}
|
||||
|
||||
public void error(String msg) {
|
||||
log(Level.ERROR, msg);
|
||||
}
|
||||
|
||||
public void error(String msg, Object... args) {
|
||||
log(Level.ERROR, msg, args);
|
||||
}
|
||||
|
||||
public void error(Throwable msg) {
|
||||
log(Level.ERROR, msg);
|
||||
}
|
||||
|
||||
public void fatal(String msg) {
|
||||
log(Level.FATAL, msg);
|
||||
}
|
||||
|
||||
public void fatal(String msg, Object... args) {
|
||||
log(Level.FATAL, msg, args);
|
||||
}
|
||||
|
||||
public void fatal(Throwable msg) {
|
||||
log(Level.FATAL, msg);
|
||||
}
|
||||
|
||||
private static final SimpleDateFormat fmt = new SimpleDateFormat("hh:mm:ss+SSS");
|
||||
private static final Date dateInstance = new Date();
|
||||
|
||||
public void log(Level level, String msg) {
|
||||
if(level.levelInt >= LogManager.logLevel.levelInt) {
|
||||
synchronized(LogManager.logLock) {
|
||||
PrintStream ps = level.getPrintStream();
|
||||
dateInstance.setTime(System.currentTimeMillis());
|
||||
ps.println("[" + fmt.format(dateInstance) + "]" +
|
||||
"[" + Thread.currentThread().getName() + "/" + level.levelName + "]" +
|
||||
"[" + loggerName + "]: " + msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void log(Level level, String msg, Object... args) {
|
||||
if(level.levelInt >= LogManager.logLevel.levelInt) {
|
||||
synchronized(LogManager.logLock) {
|
||||
PrintStream ps = level.getPrintStream();
|
||||
dateInstance.setTime(System.currentTimeMillis());
|
||||
ps.println("[" + fmt.format(dateInstance) + "]" +
|
||||
"[" + Thread.currentThread().getName() + "/" + level.levelName + "]" +
|
||||
"[" + loggerName + "]: " + formatParams(msg, args));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String formatParams(String msg, Object... args) {
|
||||
if(args.length > 0) {
|
||||
StringBuilder builtString = new StringBuilder();
|
||||
for(int i = 0; i < args.length; ++i) {
|
||||
int idx = msg.indexOf("{}");
|
||||
if(idx != -1) {
|
||||
builtString.append(msg.substring(0, idx));
|
||||
builtString.append(args[i]);
|
||||
msg = msg.substring(idx + 2);
|
||||
}else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
builtString.append(msg);
|
||||
return builtString.toString();
|
||||
}else {
|
||||
return msg;
|
||||
}
|
||||
}
|
||||
|
||||
public void log(Level level, Throwable msg) {
|
||||
logExcp(level, "Exception Thrown", msg);
|
||||
}
|
||||
|
||||
private void logExcp(final Level level, String h, Throwable msg) {
|
||||
log(level, "{}: {}", h, msg.toString());
|
||||
EagRuntime.getStackTrace(msg, (e) -> log(level, " at {}", e));
|
||||
PlatformRuntime.printJSExceptionIfBrowser(msg);
|
||||
Throwable cause = msg.getCause();
|
||||
if(cause != null) {
|
||||
logExcp(level, "Caused By", cause);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isDebugEnabled() {
|
||||
return LogManager.logLevel.levelInt <= Level.DEBUG.levelInt;
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user