CraftBukkit/src/main/java/net/minecraft/server/ConsoleLogFormatter.java
2013-03-25 00:51:36 -05:00

61 lines
2.0 KiB
Java

package net.minecraft.server;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.text.SimpleDateFormat;
import java.util.logging.Formatter;
import java.util.logging.Level;
import java.util.logging.LogRecord;
import java.util.regex.Pattern; // CraftBukkit
class ConsoleLogFormatter extends Formatter {
private SimpleDateFormat b;
final ConsoleLogManager a;
// CraftBukkit start - Add color stripping
private Pattern pattern = Pattern.compile("\\x1B\\[([0-9]{1,2}(;[0-9]{1,2})*)?[m|K]");
private boolean strip = false;
// CraftBukkit end
private ConsoleLogFormatter(ConsoleLogManager consolelogmanager) {
this.a = consolelogmanager;
this.b = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
this.strip = MinecraftServer.getServer().options.has("log-strip-color"); // CraftBukkit
}
public String format(LogRecord logrecord) {
StringBuilder stringbuilder = new StringBuilder();
stringbuilder.append(this.b.format(Long.valueOf(logrecord.getMillis())));
if (ConsoleLogManager.a(this.a) != null) {
stringbuilder.append(ConsoleLogManager.a(this.a));
}
stringbuilder.append(" [").append(logrecord.getLevel().getName()).append("] ");
stringbuilder.append(this.formatMessage(logrecord));
stringbuilder.append('\n');
Throwable throwable = logrecord.getThrown();
if (throwable != null) {
StringWriter stringwriter = new StringWriter();
throwable.printStackTrace(new PrintWriter(stringwriter));
stringbuilder.append(stringwriter.toString());
}
// CraftBukkit start - handle stripping color
if (this.strip) {
return this.pattern.matcher(stringbuilder.toString()).replaceAll("");
} else {
return stringbuilder.toString();
}
// CraftBukkit end
}
ConsoleLogFormatter(ConsoleLogManager consolelogmanager, EmptyClass3 emptyclass3) {
this(consolelogmanager);
}
}