From 6940b583c448ff8f1942efd8e65692d7b48e4fcf Mon Sep 17 00:00:00 2001 From: CraftBukkit/Spigot Date: Sat, 26 Feb 2011 11:29:37 +0000 Subject: [PATCH] Added command line option 'date-format' to control how dates are printed to console (not to log) By: Dinnerbone --- .../java/org/bukkit/craftbukkit/Main.java | 8 ++++++ .../util/ShortConsoleLogFormatter.java | 28 ++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/Main.java b/paper-server/src/main/java/org/bukkit/craftbukkit/Main.java index 2d75096f76..7522fbfc44 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/Main.java @@ -2,6 +2,9 @@ package org.bukkit.craftbukkit; import java.io.File; import java.io.IOException; +import java.text.DateFormat; +import java.text.Format; +import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.List; import java.util.logging.Level; @@ -53,6 +56,11 @@ public class Main { .withRequiredArg() .ofType(Integer.class) .describedAs("Server size"); + + acceptsAll(asList("d", "date-format"), "Format of the date to display in the console (for log entries)") + .withRequiredArg() + .ofType(SimpleDateFormat.class) + .describedAs("Log date format"); } }; diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/util/ShortConsoleLogFormatter.java b/paper-server/src/main/java/org/bukkit/craftbukkit/util/ShortConsoleLogFormatter.java index ad4419f9aa..404cf32dfe 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/util/ShortConsoleLogFormatter.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/util/ShortConsoleLogFormatter.java @@ -5,9 +5,35 @@ import java.io.StringWriter; import java.text.SimpleDateFormat; import java.util.logging.Formatter; import java.util.logging.LogRecord; +import joptsimple.OptionException; +import joptsimple.OptionSet; +import net.minecraft.server.MinecraftServer; public class ShortConsoleLogFormatter extends Formatter { - private final SimpleDateFormat date = new SimpleDateFormat("HH:mm:ss"); + private final SimpleDateFormat date; + + public ShortConsoleLogFormatter(MinecraftServer server) { + OptionSet options = server.options; + SimpleDateFormat date = null; + + if (options.has("date-format")) { + try { + Object object = options.valueOf("date-format"); + + if ((object != null) && (object instanceof SimpleDateFormat)) { + date = (SimpleDateFormat)object; + } + } catch (OptionException ex) { + System.err.println("Given date format is not valid. Falling back to default."); + } finally { + if (date == null) { + date = new SimpleDateFormat("HH:mm:ss"); + } + } + } + + this.date = date; + } @Override public String format(LogRecord record) {