[DEV] continue integration new model of log.

This commit is contained in:
Edouard DUPIN 2021-12-22 00:43:48 +01:00
parent 5b6125bec2
commit 0affb5e741
3 changed files with 243 additions and 8 deletions

View File

@ -0,0 +1,44 @@
#!/usr/bin/python
import realog.debug as debug
import lutin.tools as tools
import realog.debug as debug
import lutin.image as image
import os
import lutin.multiprocess as lutinMultiprocess
def get_type():
return "LIBRARY_DYNAMIC"
def get_desc():
return "Scenarium logger"
def get_licence():
return "MPL-2"
def get_compagny_type():
return "com"
def get_compagny_name():
return "scenarium"
#def get_maintainer():
# return "authors.txt"
#def get_version():
# return "version.txt"
def configure(target, my_module):
my_module.add_src_file([
'src/module-info.java',
'src/io/scenarium/logger/LogLevel.java',
'src/io/scenarium/logger/Logger.java',
'src/io/scenarium/logger/internal/Log.java',
])
my_module.add_path('src/', type='java')
my_module.add_flag('java', "RELEASE_15_PREVIEW");
return True

View File

@ -99,17 +99,46 @@ public class Logger {
}
private static String addGeneric(final String level, final String libName) {
String out = level;
out += Logger.printElement("", "", Logger.haveLibName, libName, Logger.sizeLibName);
out += Logger.printElement(" | ", "", Logger.haveThreadId, Long.toString(Thread.currentThread().getId()), Logger.sizeThreadId);
out += Logger.printElement(" | ", "", Logger.haveThreadName, Thread.currentThread().getName(), Logger.sizeThreadName);
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));
if (Logger.haveClassName || Logger.haveFileName || Logger.haveLineNumber) {
final StackTraceElement callElem = Logger.getCallerElement();
out += Logger.printElementLeft(" | l=", "", Logger.haveLineNumber, Long.toString(callElem.getLineNumber()), Logger.sizeLineNumber);
out += Logger.printElement(" | ", "", Logger.haveClassName, callElem.getClassName(), Logger.sizeClassName);
out += Logger.printElement(" | ", "", Logger.haveFileName, callElem.getFileName(), Logger.sizeFileName);
out.append(Logger.printElementLeft(" | l=", "", Logger.haveLineNumber, Long.toString(callElem.getLineNumber()), Logger.sizeLineNumber));
out.append(Logger.printElement(" | ", "", Logger.haveClassName, callElem.getClassName(), Logger.sizeClassName));
out.append(Logger.printElement(" | ", "", Logger.haveFileName, callElem.getFileName(), Logger.sizeFileName));
}
return out;
return out.toString();
}
/**
* Replace all the values {} with the associated value in the parameters
* @param data A generic string composed with "{}" element that will be replace.
* @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);
for (int iii = 0; iii < nbElement; iii++) {
if (iii < cliped.length) {
out.append(cliped[iii]);
} else {
out.append(" ?? ");
}
if (iii < values.length) {
if (values[iii] == null) {
out.append("null");
} else {
out.append(values[iii].toString());
}
} else {
out.append("{}");
}
}
return out.toString();
}
public static void critical(final String libName, final String data) {
@ -133,6 +162,10 @@ 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) {
if (Logger.haveColor) {
System.out.print(Logger.BASH_COLOR_YELLOW);
@ -143,6 +176,10 @@ 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();
Logger.error(libNameDraw, "Display Stacktrace :");
@ -162,6 +199,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 > 5) {
return Thread.currentThread().getStackTrace()[5];
@ -207,6 +248,10 @@ 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) {
@ -269,6 +314,10 @@ public class Logger {
System.out.flush();
}
public static void print(final String libName, final String data, Object... values) {
print(libName, concatenate(data, values));
}
private static String printElement(final String separator, final String separatorEnd, final boolean isActive, String data, final WrapInt size) {
if (!isActive) {
return "";
@ -313,6 +362,10 @@ 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):");
@ -344,6 +397,10 @@ 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) {
if (Logger.haveColor) {
System.out.print(Logger.BASH_COLOR_MAGENTA);
@ -354,5 +411,9 @@ public class Logger {
}
}
public static void warning(final String libName, final String data, Object... values) {
warning(libName, concatenate(data, values));
}
private Logger() {}
}

View File

@ -0,0 +1,130 @@
package io.scenarium.logger;
public class LoggerLocal {
private final String className;
private final String libraryName;
private final String libraryNameDraw;
private final boolean force;
private final boolean printCritical;
private final boolean printDebug;
private final boolean printError;
private final boolean printInfo;
private final boolean printPrint;
private final boolean printTodo;
private final boolean printVerbose;
private final boolean printWarning;
public LoggerLocal(String libraryName, final Class<?> clazz) {
this(libraryName, clazz, false);
}
public LoggerLocal(String libraryName, final Class<?> clazz, boolean force) {
this.force = force;
this.libraryName = libraryName;
this.className = clazz.getCanonicalName();
this.libraryNameDraw = Logger.getDrawableName(this.libraryName);
this.printCritical = Logger.getNeedPrint(this.libraryName, LogLevel.CRITICAL);
this.printDebug = Logger.getNeedPrint(this.libraryName, LogLevel.DEBUG);
this.printError = Logger.getNeedPrint(this.libraryName, LogLevel.ERROR);
this.printInfo = Logger.getNeedPrint(this.libraryName, LogLevel.INFO);
this.printPrint = Logger.getNeedPrint(this.libraryName, LogLevel.PRINT);
this.printTodo = Logger.getNeedPrint(this.libraryName, LogLevel.TODO);
this.printVerbose = Logger.getNeedPrint(this.libraryName, LogLevel.VERBOSE);
this.printWarning = Logger.getNeedPrint(this.libraryName, LogLevel.WARNING);
}
public void critical(final String data) {
if (this.printCritical || this.force) {
Logger.critical(this.libraryNameDraw, data);
}
}
public void critical(final String data, Object... values) {
if (this.printCritical || this.force) {
Logger.critical(this.libraryNameDraw, data, values);
}
}
public void debug(final String data) {
if (this.printDebug || this.force) {
Logger.debug(this.libraryNameDraw, data);
}
}
public void debug(final String data, Object... values) {
if (this.printDebug || this.force) {
Logger.debug(this.libraryNameDraw, data, values);
}
}
public void displayBackTrace() {
// TODO Auto-generated method stub
}
public void error(final String data) {
if (this.printError || this.force) {
Logger.error(this.libraryNameDraw, data);
}
}
public void error(final String data, Object... values) {
if (this.printError || this.force) {
Logger.error(this.libraryNameDraw, data, values);
}
}
public void info(final String data) {
if (this.printInfo || this.force) {
Logger.info(this.libraryNameDraw, data);
}
}
public void info(final String data, Object... values) {
if (this.printInfo || this.force) {
Logger.info(this.libraryNameDraw, data, values);
}
}
public void print(final String data) {
if (this.printPrint || this.force) {
Logger.print(this.libraryNameDraw, data);
}
}
public void print(final String data, Object... values) {
if (this.printPrint || this.force) {
Logger.print(this.libraryNameDraw, data, values);
}
}
public void todo(final String data) {
if (this.printTodo || this.force) {
Logger.todo(this.libraryNameDraw, data);
}
}
public void todo(final String data, Object... values) {
if (this.printTodo || this.force) {
Logger.todo(this.libraryNameDraw, data, values);
}
}
public void verbose(final String data) {
if (this.printVerbose || this.force) {
Logger.verbose(this.libraryNameDraw, data);
}
}
public void warning(final String data) {
if (this.printWarning || this.force) {
Logger.warning(this.libraryNameDraw, data);
}
}
public void warning(final String data, Object... values) {
if (this.printWarning || this.force) {
Logger.warning(this.libraryNameDraw, data, values);
}
}
}