Files
SlimeVR-Server/java/io/eiren/util/logging/ShortConsoleLogFormatter.java
2022-09-13 03:13:06 +03:00

59 lines
1.4 KiB
Java

package io.eiren.util.logging;
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 {
protected final SimpleDateFormat date;
public ShortConsoleLogFormatter() {
this.date = createDateFormat();
}
protected SimpleDateFormat createDateFormat() {
return new SimpleDateFormat("HH:mm:ss");
}
protected void buildMessage(StringBuilder builder, LogRecord record) {
builder.append(date.format(record.getMillis()));
builder.append(" [");
builder.append(record.getLevel().getLocalizedName().toUpperCase());
builder.append("] ");
builder.append(record.getMessage());
builder.append('\n');
}
@Override
public String format(LogRecord record) {
StringBuilder builder = new StringBuilder();
Throwable ex = record.getThrown();
buildMessage(builder, record);
if (ex != null) {
StringWriter writer = new StringWriter();
ex.printStackTrace(new PrintWriter(writer));
builder.append(writer);
}
String message = builder.toString();
Object parameters[] = record.getParameters();
if (parameters == null || parameters.length == 0)
return message;
if (
message.indexOf("{0") >= 0
|| message.indexOf("{1") >= 0
|| message.indexOf("{2") >= 0
|| message.indexOf("{3") >= 0
)
return java.text.MessageFormat.format(message, parameters);
return message;
}
}