Log can now handle like String::format

This commit is contained in:
Bixilon 2020-11-22 19:37:21 +01:00
parent dcd61d4d41
commit 82cd21ddf9
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
3 changed files with 51 additions and 44 deletions

View File

@ -24,7 +24,7 @@ public class StaticConfiguration {
public static boolean SKIP_MOJANG_AUTHENTICATION = false; // disables all connections to mojang public static boolean SKIP_MOJANG_AUTHENTICATION = false; // disables all connections to mojang
public static boolean COLORED_LOG = true; // the log should be colored with ANSI (does not affect base components) public static boolean COLORED_LOG = true; // the log should be colored with ANSI (does not affect base components)
public static boolean LOG_RELATIVE_TIME = false; // prefix all log messages with the relative start time in milliseconds instead of the formatted time public static boolean LOG_RELATIVE_TIME = false; // prefix all log messages with the relative start time in milliseconds instead of the formatted time
public static boolean VERBOSE_ENTITY_META_DATA_LOGGING = false; // if true, the entity meta data is getting serial public static boolean VERBOSE_ENTITY_META_DATA_LOGGING = false; // if true, the entity meta data is getting serialized
public static String HOME_DIRECTORY; public static String HOME_DIRECTORY;
static { static {

View File

@ -45,18 +45,24 @@ public class Log {
}, "Log").start(); }, "Log").start();
} }
public static void log(LogLevels level, String message, RGBColor color) { public static void log(LogLevels level, RGBColor color, Object message, Object... format) {
log(level, "", message, color); log(level, "", color, message, format);
} }
public static void log(LogLevels level, String prefix, String message, RGBColor color) { public static void log(LogLevels level, String prefix, RGBColor color, Object message, Object... format) {
if (message.isBlank()) {
return;
}
if (level.ordinal() > Log.level.ordinal()) { if (level.ordinal() > Log.level.ordinal()) {
// log level too low // log level too low
return; return;
} }
if (message == null) {
return;
}
if (message instanceof String string) {
if (string.isBlank()) {
return;
}
message = String.format(string, format);
}
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.append("["); builder.append("[");
if (StaticConfiguration.LOG_RELATIVE_TIME) { if (StaticConfiguration.LOG_RELATIVE_TIME) {
@ -86,8 +92,8 @@ public class Log {
* *
* @param message Raw message to log * @param message Raw message to log
*/ */
public static void game(String message) { public static void game(Object message, Object... format) {
log(LogLevels.GAME, message, ChatColors.GREEN); log(LogLevels.GAME, ChatColors.GREEN, message, format);
} }
/** /**
@ -95,8 +101,8 @@ public class Log {
* *
* @param message Raw message to log * @param message Raw message to log
*/ */
public static void fatal(String message) { public static void fatal(Object message, Object... format) {
log(LogLevels.FATAL, message, ChatColors.DARK_RED); log(LogLevels.FATAL, ChatColors.DARK_RED, message, format);
} }
/** /**
@ -104,8 +110,8 @@ public class Log {
* *
* @param message Raw message to log * @param message Raw message to log
*/ */
public static void warn(String message) { public static void warn(Object message, Object... format) {
log(LogLevels.WARNING, message, ChatColors.RED); log(LogLevels.WARNING, ChatColors.RED, message, format);
} }
/** /**
@ -113,8 +119,8 @@ public class Log {
* *
* @param message Raw message to log * @param message Raw message to log
*/ */
public static void debug(String message) { public static void debug(Object message, Object... format) {
log(LogLevels.DEBUG, message, ChatColors.GRAY); log(LogLevels.DEBUG, ChatColors.GRAY, message, format);
} }
/** /**
@ -122,8 +128,8 @@ public class Log {
* *
* @param message Raw message to log * @param message Raw message to log
*/ */
public static void verbose(String message) { public static void verbose(Object message, Object... format) {
log(LogLevels.VERBOSE, message, ChatColors.YELLOW); log(LogLevels.VERBOSE, ChatColors.YELLOW, message, format);
} }
/** /**
@ -131,8 +137,8 @@ public class Log {
* *
* @param message Raw message to log * @param message Raw message to log
*/ */
public static void protocol(String message) { public static void protocol(Object message, Object... format) {
log(LogLevels.PROTOCOL, message, ChatColors.BLUE); log(LogLevels.PROTOCOL, ChatColors.BLUE, message, format);
} }
/** /**
@ -140,10 +146,20 @@ public class Log {
* *
* @param message Raw message to log * @param message Raw message to log
*/ */
public static void mojang(String message) { public static void mojang(Object message, Object... format) {
log(LogLevels.MOJANG, message, ChatColors.AQUA); log(LogLevels.MOJANG, ChatColors.AQUA, message, format);
} }
/**
* Logs all general infos, that are more or less important to the user (connecting to server, ...)
*
* @param message Raw message to log
*/
public static void info(Object message, Object... format) {
log(LogLevels.INFO, ChatColors.WHITE, message, format);
}
public static LogLevels getLevel() { public static LogLevels getLevel() {
return level; return level;
} }
@ -156,15 +172,6 @@ public class Log {
Log.level = level; Log.level = level;
} }
/**
* Logs all general infos, that are more or less important to the user (connecting to server, ...)
*
* @param message Raw message to log
*/
public static void info(String message) {
log(LogLevels.INFO, message, ChatColors.WHITE);
}
public static boolean printException(Exception exception, LogLevels minimumLogLevel) { public static boolean printException(Exception exception, LogLevels minimumLogLevel) {
// ToDo: log to file, print also exceptions that are not printed with this method // ToDo: log to file, print also exceptions that are not printed with this method
if (Log.getLevel().ordinal() >= minimumLogLevel.ordinal()) { if (Log.getLevel().ordinal() >= minimumLogLevel.ordinal()) {

View File

@ -25,31 +25,31 @@ public class Logger {
this.modName = modName; this.modName = modName;
} }
public void log(LogLevels level, String message, RGBColor color) { public void log(LogLevels level, RGBColor color, Object message, Object... format) {
Log.log(level, String.format("[%s] ", modName), message, color); Log.log(level, String.format("[%s] ", modName), color, message, format);
} }
public void game(String message) { public void game(Object message, Object... format) {
log(LogLevels.GAME, message, ChatColors.GREEN); log(LogLevels.GAME, ChatColors.GREEN, message, format);
} }
public void fatal(String message) { public void fatal(Object message, Object... format) {
log(LogLevels.FATAL, message, ChatColors.DARK_RED); log(LogLevels.FATAL, ChatColors.DARK_RED, message, format);
} }
public void info(String message) { public void info(Object message, Object... format) {
log(LogLevels.INFO, message, ChatColors.WHITE); log(LogLevels.INFO, ChatColors.WHITE, message, format);
} }
public void warn(String message) { public void warn(Object message, Object... format) {
log(LogLevels.WARNING, message, ChatColors.RED); log(LogLevels.WARNING, ChatColors.RED, message, format);
} }
public void debug(String message) { public void debug(Object message, Object... format) {
log(LogLevels.DEBUG, message, ChatColors.GRAY); log(LogLevels.DEBUG, ChatColors.GRAY, message, format);
} }
public void verbose(String message) { public void verbose(Object message, Object... format) {
log(LogLevels.VERBOSE, message, ChatColors.YELLOW); log(LogLevels.VERBOSE, ChatColors.YELLOW, message, format);
} }
} }