From e42a710d6a82aaca2a99d8cf01ef782a9da59e2d Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Fri, 1 Apr 2022 01:00:51 +0200 Subject: [PATCH] Set a generic Logger interface mode Log.verbose("XXX yyy {} dfsf", variable); --- src/io/scenarium/logger/Logger.java | 152 ++++++++++++++++++++-------- 1 file changed, 109 insertions(+), 43 deletions(-) diff --git a/src/io/scenarium/logger/Logger.java b/src/io/scenarium/logger/Logger.java index df5d857..d7cb3de 100644 --- a/src/io/scenarium/logger/Logger.java +++ b/src/io/scenarium/logger/Logger.java @@ -99,7 +99,7 @@ public class Logger { } private static String addGeneric(final String level, final String libName) { - StringBuilder out = new StringBuilder().append(level); + final StringBuilder out = new StringBuilder().append(level); out.append(Logger.printElement("", "", Logger.haveLibName, libName, Logger.sizeLibName)); out.append(Logger.printElement(" | ", "", Logger.haveThreadId, Long.toString(Thread.currentThread().getId()), Logger.sizeThreadId)); out.append(Logger.printElement(" | ", "", Logger.haveThreadName, Thread.currentThread().getName(), Logger.sizeThreadName)); @@ -118,10 +118,10 @@ public class Logger { * @param values List of all element to add in the string. * @return a string with all the transformed data. */ - public static String concatenate(final String data, Object... values) { - String[] cliped = data.split("{}"); - StringBuilder out = new StringBuilder(); - int nbElement = Math.max(values.length, cliped.length); + public static String concatenate(final String data, final Object... values) { + final String[] cliped = data.split("\\{\\}"); + final StringBuilder out = new StringBuilder(); + final int nbElement = Math.max(values.length, cliped.length); for (int iii = 0; iii < nbElement; iii++) { if (iii < cliped.length) { out.append(cliped[iii]); @@ -142,6 +142,18 @@ public class Logger { } public static void critical(final String libName, final String data) { + criticalInternal(libName, data); + } + + public static void critical(final String libName, final String data, final Object... values) { + if (values.length == 0) { + criticalInternal(libName, data); + } else { + critical(libName, concatenate(data, values)); + } + } + + private static void criticalInternal(final String libName, final String data) { if (Logger.haveColor) { System.out.print(Logger.BASH_COLOR_BOLD_RED); } @@ -162,11 +174,19 @@ public class Logger { System.exit(-50); } - public static void critical(final String libName, final String data, Object... values) { - critical(libName, concatenate(data, values)); + public static void debug(final String libName, final String data) { + debugInternal(libName, data); } - public static void debug(final String libName, final String data) { + public static void debug(final String libName, final String data, final Object... values) { + if (values.length == 0) { + debugInternal(libName, data); + } else { + debugInternal(libName, concatenate(data, values)); + } + } + + public static void debugInternal(final String libName, final String data) { if (Logger.haveColor) { System.out.print(Logger.BASH_COLOR_YELLOW); } @@ -176,20 +196,27 @@ public class Logger { } } - public static void debug(final String libName, final String data, Object... values) { - debug(libName, concatenate(data, values)); - } - public static void displayBackTrace(final String libNameDraw) { - StackTraceElement[] list = Thread.currentThread().getStackTrace(); + final StackTraceElement[] list = Thread.currentThread().getStackTrace(); Logger.error(libNameDraw, "Display Stacktrace :"); for (int iii = 0; iii < list.length; iii++) { Logger.error(libNameDraw, " - " + list[iii]); } - } public static void error(final String libName, final String data) { + errorInternal(libName, data); + } + + public static void error(final String libName, final String data, final Object... values) { + if (values.length == 0) { + errorInternal(libName, data); + } else { + errorInternal(libName, concatenate(data, values)); + } + } + + private static void errorInternal(final String libName, final String data) { if (Logger.haveColor) { System.out.print(Logger.BASH_COLOR_RED); } @@ -199,11 +226,10 @@ public class Logger { } } - public static void error(final String libName, final String data, Object... values) { - error(libName, concatenate(data, values)); - } - private static StackTraceElement getCallerElement() { + if (Thread.currentThread().getStackTrace().length > 6) { + return Thread.currentThread().getStackTrace()[6]; + } if (Thread.currentThread().getStackTrace().length > 5) { return Thread.currentThread().getStackTrace()[5]; } @@ -238,6 +264,18 @@ public class Logger { } public static void info(final String libName, final String data) { + infoInternal(libName, data); + } + + public static void info(final String libName, final String data, final Object... values) { + if (values.length == 0) { + infoInternal(libName, data); + } else { + infoInternal(libName, concatenate(data, values)); + } + } + + private static void infoInternal(final String libName, final String data) { final StackTraceElement callElem = Logger.getCallerElement(); if (Logger.haveColor) { System.out.print(Logger.BASH_COLOR_CYAN); @@ -248,10 +286,6 @@ public class Logger { } } - public static void info(final String libName, final String data, Object... values) { - info(libName, concatenate(data, values)); - } - /** Initialize the library with generic argument in command line * @param args list of argument that are filtered after */ public static void init(final List args) { @@ -304,18 +338,15 @@ public class Logger { } public static void print(final String libName, final String data) { - if (Logger.haveColor) { - System.out.print(Logger.BASH_COLOR_WHITE); - } - System.out.println(Logger.addGeneric("[P] ", libName) + " | " + data); - if (Logger.haveColor) { - System.out.print(Logger.BASH_COLOR_NORMAL); - } - System.out.flush(); + printInternal(libName, data); } - public static void print(final String libName, final String data, Object... values) { - print(libName, concatenate(data, values)); + public static void print(final String libName, final String data, final Object... values) { + if (values.length == 0) { + printInternal(libName, data); + } else { + printInternal(libName, concatenate(data, values)); + } } private static String printElement(final String separator, final String separatorEnd, final boolean isActive, String data, final WrapInt size) { @@ -348,11 +379,34 @@ public class Logger { return separator + Logger.spaces(rest) + data + separatorEnd; } + private static void printInternal(final String libName, final String data) { + if (Logger.haveColor) { + System.out.print(Logger.BASH_COLOR_WHITE); + } + System.out.println(Logger.addGeneric("[P] ", libName) + " | " + data); + if (Logger.haveColor) { + System.out.print(Logger.BASH_COLOR_NORMAL); + } + System.out.flush(); + } + public static String spaces(final int spaces) { return CharBuffer.allocate(spaces).toString().replace('\0', ' '); } public static void todo(final String libName, final String data) { + todoInternal(libName, data); + } + + public static void todo(final String libName, final String data, final Object... values) { + if (values.length == 0) { + todoInternal(libName, data); + } else { + todoInternal(libName, concatenate(data, values)); + } + } + + private static void todoInternal(final String libName, final String data) { if (Logger.haveColor) { System.out.print(Logger.BASH_COLOR_WHITE); } @@ -362,10 +416,6 @@ public class Logger { } } - public static void todo(final String libName, final String data, Object... values) { - todo(libName, concatenate(data, values)); - } - public static void usage() { Log.print(" [log]: Log session interface"); Log.print(" --log-level= Change the default log level (set all Log level):"); @@ -388,6 +438,18 @@ public class Logger { } public static void verbose(final String libName, final String data) { + verboseInternal(libName, data); + } + + public static void verbose(final String libName, final String data, final Object... values) { + if (values.length == 0) { + verboseInternal(libName, data); + } else { + verboseInternal(libName, concatenate(data, values)); + } + } + + private static void verboseInternal(final String libName, final String data) { if (Logger.haveColor) { System.out.print(Logger.BASH_COLOR_WHITE); } @@ -397,11 +459,19 @@ public class Logger { } } - public static void verbose(final String libName, final String data, Object... values) { - verbose(libName, concatenate(data, values)); + public static void warning(final String libName, final String data) { + warningInternal(libName, data); } - public static void warning(final String libName, final String data) { + public static void warning(final String libName, final String data, final Object... values) { + if (values.length == 0) { + warningInternal(libName, data); + } else { + warningInternal(libName, concatenate(data, values)); + } + } + + private static void warningInternal(final String libName, final String data) { if (Logger.haveColor) { System.out.print(Logger.BASH_COLOR_MAGENTA); } @@ -411,9 +481,5 @@ public class Logger { } } - public static void warning(final String libName, final String data, Object... values) { - warning(libName, concatenate(data, values)); - } - private Logger() {} }