75 lines
1.4 KiB
Java
75 lines
1.4 KiB
Java
package swap.log;
|
|
|
|
import java.time.Instant;
|
|
|
|
public abstract class Log {
|
|
static final int LOW = 0;
|
|
static final int HINT = 3;
|
|
static final int DEFAULT = 4;
|
|
static final int WARNING = 5;
|
|
static final int ERROR = 7;
|
|
static final int HIGH = 10;
|
|
|
|
public static int saneLevel(int level) {
|
|
if (level < LOW) {
|
|
return LOW;
|
|
} else if (level > HIGH) {
|
|
return HIGH;
|
|
} else {
|
|
return level;
|
|
}
|
|
}
|
|
|
|
public static String stringLevel(int level) {
|
|
level = saneLevel(level);
|
|
switch(level) {
|
|
case LOW:
|
|
return "LOW";
|
|
case HINT:
|
|
return "HINT";
|
|
case DEFAULT:
|
|
return "DEFAULT";
|
|
case WARNING:
|
|
return "WARNING";
|
|
case ERROR:
|
|
return "ERROR";
|
|
case HIGH:
|
|
return "HIGH";
|
|
default:
|
|
return "LEVEL " + level;
|
|
}
|
|
}
|
|
|
|
public static String stringLine(Object[] line) {
|
|
String r = "";
|
|
boolean first = true;
|
|
for (Object o: line) {
|
|
if (first) {
|
|
first = false;
|
|
} else {
|
|
r += " ";
|
|
}
|
|
r += o;
|
|
}
|
|
return r;
|
|
}
|
|
|
|
public static String stringThread() {
|
|
return Thread.currentThread().toString();
|
|
}
|
|
|
|
public static String stringTime() {
|
|
return Instant.now().toString();
|
|
}
|
|
|
|
protected abstract void doWriteLine(int saneLevel, Object[] line);
|
|
|
|
public synchronized final void writeLine(int level, Object...line) {
|
|
doWriteLine(saneLevel(level), line);
|
|
}
|
|
|
|
public synchronized final void line(Object...line) {
|
|
doWriteLine(DEFAULT, line);
|
|
}
|
|
}
|