Much better console interaction. History, no more losing the command, colours, inline editing, etc. Shorter log output to console (but not to file).

By: Dinnerbone <dinnerbone@dinnerbone.com>
This commit is contained in:
CraftBukkit/Spigot
2011-02-25 16:12:38 +00:00
parent 0114eb89e9
commit a4d2cf2a38
5 changed files with 124 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
package org.bukkit.craftbukkit.util;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.text.SimpleDateFormat;
import java.util.logging.Formatter;
import java.util.logging.LogRecord;
public class ShortConsoleLogFormatter extends Formatter {
private final SimpleDateFormat date = new SimpleDateFormat("HH:mm:ss");
@Override
public String format(LogRecord record) {
StringBuilder builder = new StringBuilder();
Throwable ex = record.getThrown();
builder.append(date.format(record.getMillis()));
builder.append(" [");
builder.append(record.getLevel().getLocalizedName().toUpperCase());
builder.append("] ");
builder.append(record.getMessage());
builder.append('\n');
if (ex != null) {
StringWriter writer = new StringWriter();
ex.printStackTrace(new PrintWriter(writer));
builder.append(writer);
}
return builder.toString();
}
}

View File

@@ -0,0 +1,27 @@
package org.bukkit.craftbukkit.util;
import java.io.IOException;
import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
import jline.ConsoleReader;
public class TerminalConsoleHandler extends ConsoleHandler {
private final ConsoleReader reader;
public TerminalConsoleHandler(ConsoleReader reader) {
super();
this.reader = reader;
}
@Override
public synchronized void flush() {
super.flush();
try {
reader.redrawLine();
} catch (IOException ex) {
Logger.getLogger(TerminalConsoleHandler.class.getName()).log(Level.SEVERE, null, ex);
}
}
}