improved color logger

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2024-07-24 23:19:03 +02:00
parent 09e5a52c53
commit 493c642992
3 changed files with 78 additions and 72 deletions

View File

@@ -4,6 +4,7 @@ package de.srsoftware.logging;
import static de.srsoftware.logging.ConsoleColors.*;
import static java.lang.System.Logger.Level.*;
import java.text.DateFormat;
import java.text.MessageFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -12,6 +13,9 @@ import java.util.ResourceBundle;
public class ColorLogger implements System.Logger {
private final String name;
private static int rootLevel = INFO.getSeverity();
private static DateFormat TIME = new SimpleDateFormat("hh:mm:ss.SSS");
private static DateFormat DATE = new SimpleDateFormat("yyyy-MM-dd");
private static String lastDate = null;
public ColorLogger(String name) {
this.name = name;
@@ -50,7 +54,12 @@ public class ColorLogger implements System.Logger {
private static String colorize(String message, int severity) {
var color = severity >= ERROR.getSeverity() ? RED : severity >= WARNING.getSeverity() ? YELLOW : severity >= INFO.getSeverity() ? WHITE_BRIGHT : WHITE;
var date = new Date();
var FORMAT = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
return WHITE + FORMAT.format(date) + " " + color + message + RESET;
var day =DATE.format(date);
StringBuilder sb = new StringBuilder();
if (!day.equals(lastDate)){
lastDate = day;
sb.append(WHITE).append(day).append("\n");
}
return sb.append(WHITE).append(TIME.format(date)).append(" ").append(color).append(message).append(RESET).toString();
}
}