Изменение домена с rosetta-im.com на rosetta.im
This commit is contained in:
74
src/main/java/im/rosetta/logger/Logger.java
Normal file
74
src/main/java/im/rosetta/logger/Logger.java
Normal file
@@ -0,0 +1,74 @@
|
||||
package im.rosetta.logger;
|
||||
|
||||
import java.time.Instant;
|
||||
|
||||
import im.rosetta.logger.enums.Color;
|
||||
import im.rosetta.logger.enums.LogLevel;
|
||||
|
||||
public class Logger {
|
||||
|
||||
private long startTime = 0;
|
||||
private LogLevel logLevel;
|
||||
|
||||
public Logger(LogLevel logLevel) {
|
||||
this.logLevel = logLevel;
|
||||
startTime = (System.currentTimeMillis() / 1000);
|
||||
}
|
||||
|
||||
/**
|
||||
* Логирование сообщения с указанным уровнем логирования
|
||||
* @param logLevel уровень логирования
|
||||
* @param message сообщение для логирования
|
||||
*/
|
||||
public void log(LogLevel logLevel, String message) {
|
||||
if (!this.logLevel.allows(logLevel)) {
|
||||
return;
|
||||
}
|
||||
long currentTimeMs = System.currentTimeMillis();
|
||||
long currentTime = currentTimeMs / 1000;
|
||||
long elapsedTime = currentTime - startTime;
|
||||
String currentDateISO = Instant.ofEpochMilli(currentTimeMs).toString();
|
||||
System.out.println(getColorForLogLevel(logLevel) + "["+ logLevel.toString() +"]" + Color.RESET + "[" + currentDateISO + "]" + Color.CYAN + "[+" + elapsedTime + "] " + Color.WHITE + message + Color.RESET);
|
||||
}
|
||||
|
||||
/**
|
||||
* Логирование информационного сообщения
|
||||
* @param message сообщение для логирования
|
||||
*/
|
||||
public void info(String message) {
|
||||
this.log(LogLevel.INFO, message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Логирование предупреждающего сообщения
|
||||
* @param message сообщение для логирования
|
||||
*/
|
||||
public void warn(String message) {
|
||||
this.log(LogLevel.WARN, message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Логирование сообщения об ошибке
|
||||
* @param message сообщение для логирования
|
||||
*/
|
||||
public void error(String message) {
|
||||
this.log(LogLevel.ERROR, message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Логирование отладочного сообщения
|
||||
* @param message сообщение для логирования
|
||||
*/
|
||||
public void debug(String message) {
|
||||
this.log(LogLevel.DEBUG, message);
|
||||
}
|
||||
|
||||
private String getColorForLogLevel(LogLevel logLevel) {
|
||||
return switch (logLevel) {
|
||||
case INFO -> Color.BLUE;
|
||||
case WARN -> Color.YELLOW;
|
||||
case ERROR -> Color.RED;
|
||||
case DEBUG -> Color.PURPLE;
|
||||
};
|
||||
}
|
||||
}
|
||||
13
src/main/java/im/rosetta/logger/enums/Color.java
Normal file
13
src/main/java/im/rosetta/logger/enums/Color.java
Normal file
@@ -0,0 +1,13 @@
|
||||
package im.rosetta.logger.enums;
|
||||
|
||||
public final class Color {
|
||||
public static final String RESET = "\u001B[0m";
|
||||
public static final String BLACK = "\u001B[30m";
|
||||
public static final String RED = "\u001B[31m";
|
||||
public static final String GREEN = "\u001B[32m";
|
||||
public static final String YELLOW = "\u001B[33m";
|
||||
public static final String BLUE = "\u001B[34m";
|
||||
public static final String PURPLE = "\u001B[35m";
|
||||
public static final String CYAN = "\u001B[36m";
|
||||
public static final String WHITE = "\u001B[37m";
|
||||
}
|
||||
12
src/main/java/im/rosetta/logger/enums/LogLevel.java
Normal file
12
src/main/java/im/rosetta/logger/enums/LogLevel.java
Normal file
@@ -0,0 +1,12 @@
|
||||
package im.rosetta.logger.enums;
|
||||
|
||||
public enum LogLevel {
|
||||
INFO,
|
||||
WARN,
|
||||
ERROR,
|
||||
DEBUG;
|
||||
|
||||
public boolean allows(LogLevel other) {
|
||||
return this.ordinal() <= other.ordinal();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user