Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-20 13:30:05 +01:00
b00de5f176
Added newlines at the end of files Fixed improper line endings on some files Matched start - end comments Added some missing comments for diffs Fixed syntax on some spots Minimized some diff Removed some no longer used files Added comment on some required files with no changes Fixed imports of items used once Added imports for items used more than once
105 Zeilen
4.0 KiB
Java
105 Zeilen
4.0 KiB
Java
package net.minecraft.server;
|
|
|
|
import java.util.logging.ConsoleHandler;
|
|
import java.util.logging.FileHandler;
|
|
import java.util.logging.Level;
|
|
import java.util.logging.Logger;
|
|
|
|
import java.io.File; // CraftBukkit
|
|
|
|
public class ConsoleLogManager {
|
|
|
|
public static Logger a = Logger.getLogger("Minecraft");
|
|
public static Logger global = Logger.getLogger(""); // CraftBukkit
|
|
|
|
public ConsoleLogManager() {}
|
|
|
|
// CraftBukkit - change of method signature!
|
|
public static void init(MinecraftServer server) {
|
|
ConsoleLogFormatter consolelogformatter = new ConsoleLogFormatter(server.options.has("log-strip-color")); // CraftBukkit - pass strip color option
|
|
|
|
a.setUseParentHandlers(false);
|
|
// CraftBukkit start
|
|
ConsoleHandler consolehandler = new org.bukkit.craftbukkit.util.TerminalConsoleHandler(server.reader);
|
|
|
|
for (java.util.logging.Handler handler : global.getHandlers()) {
|
|
global.removeHandler(handler);
|
|
}
|
|
|
|
consolehandler.setFormatter(new org.bukkit.craftbukkit.util.ShortConsoleLogFormatter(server));
|
|
global.addHandler(consolehandler);
|
|
// CraftBukkit end
|
|
|
|
a.addHandler(consolehandler);
|
|
|
|
try {
|
|
// CraftBukkit start
|
|
String pattern = (String) server.options.valueOf("log-pattern");
|
|
|
|
// We have to parse the pattern ourself so we can create directories as needed (java #6244047)
|
|
String tmpDir = System.getProperty("java.io.tmpdir");
|
|
String homeDir = System.getProperty("user.home");
|
|
if (tmpDir == null) {
|
|
tmpDir = homeDir;
|
|
}
|
|
|
|
// We only care about parsing for directories, FileHandler can do file names by itself
|
|
File parent = new File(pattern).getParentFile();
|
|
StringBuilder fixedPattern = new StringBuilder();
|
|
String parentPath = "";
|
|
if (parent != null) {
|
|
parentPath = parent.getPath();
|
|
}
|
|
|
|
int i = 0;
|
|
while (i < parentPath.length()) {
|
|
char ch = parentPath.charAt(i);
|
|
char ch2 = 0;
|
|
if (i + 1 < parentPath.length()) {
|
|
ch2 = Character.toLowerCase(pattern.charAt(i + 1));
|
|
}
|
|
|
|
if (ch == '%') {
|
|
if (ch2 == 'h') {
|
|
i += 2;
|
|
fixedPattern.append(homeDir);
|
|
continue;
|
|
} else if (ch2 == 't') {
|
|
i += 2;
|
|
fixedPattern.append(tmpDir);
|
|
continue;
|
|
} else if (ch2 == '%') {
|
|
// Even though we don't care about this we have to skip it to avoid matching %%t
|
|
i += 2;
|
|
fixedPattern.append("%%");
|
|
continue;
|
|
} else if (ch2 != 0) {
|
|
throw new java.io.IOException("log-pattern can only use %t and %h for directories, got %" + ch2);
|
|
}
|
|
}
|
|
|
|
fixedPattern.append(ch);
|
|
i++;
|
|
}
|
|
|
|
// Try to create needed parent directories
|
|
parent = new File(fixedPattern.toString());
|
|
if (parent != null) {
|
|
parent.mkdirs();
|
|
}
|
|
|
|
int limit = ((Integer) server.options.valueOf("log-limit")).intValue();
|
|
int count = ((Integer) server.options.valueOf("log-count")).intValue();
|
|
boolean append = ((Boolean) server.options.valueOf("log-append")).booleanValue();
|
|
FileHandler filehandler = new FileHandler(pattern, limit, count, append);
|
|
// CraftBukkit end
|
|
|
|
filehandler.setFormatter(consolelogformatter);
|
|
a.addHandler(filehandler);
|
|
global.addHandler(filehandler); // CraftBukkit
|
|
} catch (Exception exception) {
|
|
a.log(Level.WARNING, "Failed to log to server.log", exception);
|
|
}
|
|
}
|
|
}
|