Change log folder to ~/.hmcl

This commit is contained in:
huangyuhui
2018-06-09 17:37:43 +08:00
parent 034734ec66
commit 38c6bce2c0
4 changed files with 27 additions and 22 deletions

View File

@@ -71,8 +71,11 @@ public final class Launcher extends Application {
public static void main(String[] args) { public static void main(String[] args) {
Thread.setDefaultUncaughtExceptionHandler(CRASH_REPORTER); Thread.setDefaultUncaughtExceptionHandler(CRASH_REPORTER);
if (!LOG_DIRECTORY.mkdirs())
System.out.println("Unable to create log directory " + LOG_DIRECTORY + ", log files cannot be generated.");
try { try {
Logging.start(); Logging.start(LOG_DIRECTORY);
// NetworkUtils.setUserAgentSupplier(() -> "Hello Minecraft! Launcher"); // NetworkUtils.setUserAgentSupplier(() -> "Hello Minecraft! Launcher");
Constants.UI_THREAD_SCHEDULER = Constants.JAVAFX_UI_THREAD_SCHEDULER; Constants.UI_THREAD_SCHEDULER = Constants.JAVAFX_UI_THREAD_SCHEDULER;
@@ -113,21 +116,6 @@ public final class Launcher extends Application {
}); });
} }
public static File getWorkingDirectory(String folder) {
String home = System.getProperty("user.home", ".");
switch (OperatingSystem.CURRENT_OS) {
case LINUX:
return new File(home, "." + folder + "/");
case WINDOWS:
String appdata = System.getenv("APPDATA");
return new File(Lang.nonNull(appdata, home), "." + folder + "/");
case OSX:
return new File(home, "Library/Application Support/" + folder);
default:
return new File(home, folder + "/");
}
}
public static List<File> getCurrentJarFiles() { public static List<File> getCurrentJarFiles() {
List<File> result = new LinkedList<>(); List<File> result = new LinkedList<>();
if (Launcher.class.getClassLoader() instanceof URLClassLoader) { if (Launcher.class.getClassLoader() instanceof URLClassLoader) {
@@ -160,8 +148,9 @@ public final class Launcher extends Application {
return String.format(i18n(key), formatArgs); return String.format(i18n(key), formatArgs);
} }
public static final File MINECRAFT_DIRECTORY = getWorkingDirectory("minecraft"); public static final File MINECRAFT_DIRECTORY = OperatingSystem.getWorkingDirectory("minecraft");
public static final File HMCL_DIRECTORY = getWorkingDirectory("hmcl"); public static final File HMCL_DIRECTORY = OperatingSystem.getWorkingDirectory("hmcl");
public static final File LOG_DIRECTORY = new File(Launcher.HMCL_DIRECTORY, "logs");
public static final String VERSION = "@HELLO_MINECRAFT_LAUNCHER_VERSION_FOR_GRADLE_REPLACING@"; public static final String VERSION = "@HELLO_MINECRAFT_LAUNCHER_VERSION_FOR_GRADLE_REPLACING@";
public static final String NAME = "HMCL"; public static final String NAME = "HMCL";

View File

@@ -67,7 +67,7 @@ public class AppDataUpgrader extends IUpgrader {
return null; return null;
}); });
} finally { } finally {
Logging.start(); Logging.start(Launcher.LOG_DIRECTORY);
Thread.currentThread().setContextClassLoader(pre); Thread.currentThread().setContextClassLoader(pre);
} }
return true; return true;
@@ -218,7 +218,7 @@ public class AppDataUpgrader extends IUpgrader {
public static class AppDataUpgraderJarTask extends Task { public static class AppDataUpgraderJarTask extends Task {
public static final File BASE_FOLDER = Launcher.getWorkingDirectory("hmcl"); public static final File BASE_FOLDER = OperatingSystem.getWorkingDirectory("hmcl");
public static final File HMCL_VER_FILE = new File(BASE_FOLDER, "hmclver.json"); public static final File HMCL_VER_FILE = new File(BASE_FOLDER, "hmclver.json");
public static File getSelf(String ver) { public static File getSelf(String ver) {

View File

@@ -18,6 +18,7 @@
package org.jackhuang.hmcl.util; package org.jackhuang.hmcl.util;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@@ -37,12 +38,12 @@ public final class Logging {
LOG = Logger.getLogger("HMCL"); LOG = Logger.getLogger("HMCL");
} }
public static void start() { public static void start(File logFolder) {
LOG.setLevel(Level.FINER); LOG.setLevel(Level.FINER);
LOG.setUseParentHandlers(false); LOG.setUseParentHandlers(false);
try { try {
FileHandler fileHandler = new FileHandler("hmcl.log"); FileHandler fileHandler = new FileHandler(new File(logFolder, "hmcl.log").getAbsolutePath());
fileHandler.setLevel(Level.FINEST); fileHandler.setLevel(Level.FINEST);
fileHandler.setFormatter(DefaultFormatter.INSTANCE); fileHandler.setFormatter(DefaultFormatter.INSTANCE);
LOG.addHandler(fileHandler); LOG.addHandler(fileHandler);

View File

@@ -143,4 +143,19 @@ public enum OperatingSystem {
System.runFinalization(); System.runFinalization();
System.gc(); System.gc();
} }
public static File getWorkingDirectory(String folder) {
String home = System.getProperty("user.home", ".");
switch (OperatingSystem.CURRENT_OS) {
case LINUX:
return new File(home, "." + folder + "/");
case WINDOWS:
String appdata = System.getenv("APPDATA");
return new File(Lang.nonNull(appdata, home), "." + folder + "/");
case OSX:
return new File(home, "Library/Application Support/" + folder);
default:
return new File(home, folder + "/");
}
}
} }