From 83fd8fad6997bd438e0a2f8d1bccfd6d9c1cbd56 Mon Sep 17 00:00:00 2001 From: stevenh Date: Sun, 10 Jul 2011 18:28:57 +0100 Subject: [PATCH] Added command line logging configuration which enables log file: * Size limiting (--log-limit ) * Rotation (--log-count ) * Custom naming (--log-pattern ) * Append (--log-append ) 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 --- .../minecraft/server/ConsoleLogManager.java | 8 +++++- .../java/org/bukkit/craftbukkit/Main.java | 26 ++++++++++++++++++- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/ConsoleLogManager.java b/src/main/java/net/minecraft/server/ConsoleLogManager.java index eae9dab0bb..806df662f1 100644 --- a/src/main/java/net/minecraft/server/ConsoleLogManager.java +++ b/src/main/java/net/minecraft/server/ConsoleLogManager.java @@ -37,7 +37,13 @@ public class ConsoleLogManager { a.addHandler(consolehandler); try { - FileHandler filehandler = new FileHandler("server.log", true); + // 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); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java index 3ec19b46f8..4beb5b77f9 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -62,6 +62,30 @@ public class Main { .ofType(SimpleDateFormat.class) .describedAs("Log date format"); + acceptsAll(asList("log-pattern"), "Specfies the log filename pattern") + .withRequiredArg() + .ofType(String.class) + .defaultsTo("server.log") + .describedAs("Log filename"); + + acceptsAll(asList("log-limit"), "Limits the maximum size of the log file (0 = unlimited)") + .withRequiredArg() + .ofType(Integer.class) + .defaultsTo(0) + .describedAs("Max log size"); + + acceptsAll(asList("log-count"), "Specified how many log files to cycle through") + .withRequiredArg() + .ofType(Integer.class) + .defaultsTo(1) + .describedAs("Log count"); + + acceptsAll(asList("log-append"), "Whether to append to the log file") + .withRequiredArg() + .ofType(Boolean.class) + .defaultsTo(true) + .describedAs("Log append"); + acceptsAll(asList("b", "bukkit-settings"), "File for bukkit settings") .withRequiredArg() .ofType(File.class) @@ -89,7 +113,7 @@ public class Main { } else { try { useJline = !"jline.UnsupportedTerminal".equals(System.getProperty("jline.terminal")); - + if (options.has("nojline")) { System.setProperty("jline.terminal", "jline.UnsupportedTerminal"); System.setProperty("user.language", "en");