Set a generic Logger interface mode Log.verbose("XXX yyy {} dfsf", variable);

This commit is contained in:
Edouard DUPIN 2022-04-01 01:00:51 +02:00
parent 37e3d95eaa
commit e42a710d6a

View File

@ -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<String> 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() {}
}