Paper/src/main/java/net/minecraft/server/ConsoleLogManager.java
stevenh 83fd8fad69 Added command line logging configuration which enables log file:
* Size limiting (--log-limit <size in bytes>)
* Rotation (--log-count <count of files>)
* Custom naming (--log-pattern <filename pattern>)
* Append (--log-append <true|false>)
Note: This is done via command line and not bukkit-settings as that would require lots of refactoring of both core server and CraftBukkit due to the current initialisation ordering and depenencies.
All settings default to that of the standard server
2011-07-10 18:28:57 +01:00

56 lines
1.9 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;
// CraftBukkit start
import java.util.logging.Handler;
import org.bukkit.craftbukkit.util.ShortConsoleLogFormatter;
import org.bukkit.craftbukkit.util.TerminalConsoleHandler;
// CraftBukkit end
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();
a.setUseParentHandlers(false);
// CraftBukkit start
ConsoleHandler consolehandler = new TerminalConsoleHandler(server.reader);
for (Handler handler: global.getHandlers()) {
global.removeHandler(handler);
}
consolehandler.setFormatter(new ShortConsoleLogFormatter(server));
global.addHandler(consolehandler);
// CraftBukkit end
a.addHandler(consolehandler);
try {
// CraftBukkit start
String pattern = (String)server.options.valueOf("log-pattern");
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 start
filehandler.setFormatter(consolelogformatter);
a.addHandler(filehandler);
global.addHandler(filehandler); // CraftBukkit
} catch (Exception exception) {
a.log(Level.WARNING, "Failed to log to server.log", exception);
}
}
}