Use java.util.logging instead of custom logging

This commit is contained in:
icelimetea 2022-04-24 15:10:35 +01:00
parent c968c1be78
commit b0a469baab
3 changed files with 38 additions and 59 deletions

View File

@ -20,10 +20,14 @@ import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.logging.Level;
import java.util.logging.Logger;
public class EntryPoint
{
private static final Logger LOGGER = Logger.getLogger("EntryPoint");
private final ParamBucket params = new ParamBucket();
private org.multimc.Launcher launcher;
@ -36,7 +40,8 @@ public class EntryPoint
if (retCode != 0)
{
System.out.println("Exiting with " + retCode);
LOGGER.info("Exiting with " + retCode);
System.exit(retCode);
}
}
@ -64,7 +69,7 @@ public class EntryPoint
if (pair[1].equals("onesix")) {
launcher = new OneSixLauncher();
Utils.log("Using onesix launcher.");
LOGGER.info("Using onesix launcher.");
return Action.Proceed;
} else {
@ -101,9 +106,7 @@ public class EntryPoint
}
}
} catch (IOException | ParseException e) {
Utils.log("Launcher ABORT due to exception:");
e.printStackTrace();
LOGGER.log(Level.SEVERE, "Launcher ABORT due to exception:", e);
return 1;
}
@ -111,7 +114,8 @@ public class EntryPoint
// Main loop
if (action == Action.Abort)
{
System.err.println("Launch aborted by the launcher.");
LOGGER.info("Launch aborted by the launcher.");
return 1;
}
@ -120,7 +124,7 @@ public class EntryPoint
return launcher.launch(params);
}
System.err.println("No valid launcher implementation specified.");
LOGGER.log(Level.SEVERE, "No valid launcher implementation specified.");
return 1;
}

View File

@ -16,21 +16,10 @@
package org.multimc;
import java.io.*;
import java.io.File;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.net.URL;
import java.net.URLClassLoader;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.*;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
public class Utils
{
@ -93,27 +82,5 @@ public class Utils
return null;
}
/**
* Log to the launcher console
*
* @param message A String containing the message
* @param level A String containing the level name. See MinecraftLauncher::getLevel()
*/
public static void log(String message, String level)
{
// Kinda dirty
String tag = "!![" + level + "]!";
System.out.println(tag + message.replace("\n", "\n" + tag));
}
public static void log(String message)
{
log(message, "Launcher");
}
public static void log()
{
System.out.println();
}
}

View File

@ -19,14 +19,18 @@ import org.multimc.*;
import java.applet.Applet;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
public class OneSixLauncher implements Launcher
{
private static final Logger LOGGER = Logger.getLogger("OneSixLauncher");
// parameters, separated from ParamBucket
private List<String> libraries;
private List<String> mcparams;
@ -104,7 +108,7 @@ public class OneSixLauncher implements Launcher
if (f == null)
{
System.err.println("Could not find Minecraft path field.");
LOGGER.warning("Could not find Minecraft path field.");
}
else
{
@ -113,8 +117,12 @@ public class OneSixLauncher implements Launcher
}
} catch (Exception e)
{
System.err.println("Could not set base folder. Failed to find/access Minecraft main class:");
e.printStackTrace(System.err);
LOGGER.log(
Level.SEVERE,
"Could not set base folder. Failed to find/access Minecraft main class:",
e
);
return -1;
}
@ -122,7 +130,7 @@ public class OneSixLauncher implements Launcher
if(!traits.contains("noapplet"))
{
Utils.log("Launching with applet wrapper...");
LOGGER.info("Launching with applet wrapper...");
try
{
Class<?> MCAppletClass = cl.loadClass(appletClass);
@ -132,10 +140,9 @@ public class OneSixLauncher implements Launcher
return 0;
} catch (Exception e)
{
Utils.log("Applet wrapper failed:", "Error");
e.printStackTrace(System.err);
Utils.log();
Utils.log("Falling back to using main class.");
LOGGER.log(Level.SEVERE, "Applet wrapper failed:", e);
LOGGER.warning("Falling back to using main class.");
}
}
@ -147,8 +154,8 @@ public class OneSixLauncher implements Launcher
return 0;
} catch (Exception e)
{
Utils.log("Failed to invoke the Minecraft main class:", "Fatal");
e.printStackTrace(System.err);
LOGGER.log(Level.SEVERE, "Failed to invoke the Minecraft main class:", e);
return -1;
}
}
@ -185,8 +192,8 @@ public class OneSixLauncher implements Launcher
mc = cl.loadClass(mainClass);
} catch (ClassNotFoundException e)
{
System.err.println("Failed to find Minecraft main class:");
e.printStackTrace(System.err);
LOGGER.log(Level.SEVERE, "Failed to find Minecraft main class:", e);
return -1;
}
@ -197,8 +204,8 @@ public class OneSixLauncher implements Launcher
meth = mc.getMethod("main", String[].class);
} catch (NoSuchMethodException e)
{
System.err.println("Failed to acquire the main method:");
e.printStackTrace(System.err);
LOGGER.log(Level.SEVERE, "Failed to acquire the main method:", e);
return -1;
}
@ -210,8 +217,8 @@ public class OneSixLauncher implements Launcher
meth.invoke(null, (Object) paramsArray);
} catch (Exception e)
{
System.err.println("Failed to start Minecraft:");
e.printStackTrace(System.err);
LOGGER.log(Level.SEVERE, "Failed to start Minecraft:", e);
return -1;
}
return 0;
@ -226,8 +233,8 @@ public class OneSixLauncher implements Launcher
processParams(params);
} catch (NotFoundException e)
{
System.err.println("Not enough arguments.");
e.printStackTrace(System.err);
LOGGER.log(Level.SEVERE, "Not enough arguments!");
return -1;
}
@ -245,4 +252,5 @@ public class OneSixLauncher implements Launcher
return launchWithMainClass();
}
}
}