NetworkSystem rework

This commit is contained in:
2024-07-24 16:58:38 +02:00
parent b1b0eb4337
commit d81ee26371
41 changed files with 1294 additions and 1094 deletions

View File

@@ -0,0 +1,175 @@
package me.finn.unlegitlibrary.utils;
import me.finn.unlegitlibrary.file.FileUtils;
import me.finn.unlegitlibrary.string.color.ConsoleColor;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Logger by shock9 Interactive
*/
public final class Logger {
private File logFolder;
private File latestLogFile;
private static boolean isInitialized = false;
public Logger(File logFolder) throws IOException {
// Basic setup for log folder and latest log file
this.logFolder = logFolder;
latestLogFile = new File(logFolder, "log-latest.txt");
logFolder.mkdir();
if (latestLogFile.exists()) latestLogFile.delete();
latestLogFile.createNewFile();
isInitialized = true;
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
try {
shutdown();
} catch (IOException exception) {
exception("Failed to shutdown logger", exception);
}
}));
}
// Renaming latest log to current date and yeah
public final void shutdown() throws IOException {
if (!isInitialized) return;
// Get current date and time
SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy_HH.mm.ss");
Date date = new Date();
String timeStamp = formatter.format(date);
// Backup latest log file to current date and time
File backupLogFile = new File(logFolder, "log-" + timeStamp + ".txt");
backupLogFile.createNewFile();
FileUtils.copyFile(latestLogFile, backupLogFile, true);
FileUtils.writeFile(backupLogFile, FileUtils.readFile(latestLogFile));
isInitialized = false;
}
private final void writeToLog(String log) throws IOException {
if (isInitialized)
FileUtils.writeFile(latestLogFile, FileUtils.readFile(latestLogFile) + System.lineSeparator() + log);
}
public final void log(String string) {
// Get current date and time
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
Date date = new Date();
String timeStamp = formatter.format(date);
// Writing log
String log = timeStamp + " [LOG] " + string;
try {
writeToLog(log);
} catch (IOException ignored) {
}
}
public final void info(String info) {
// Get current date and time
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
Date date = new Date();
String timeStamp = formatter.format(date);
// Writing log
String log = timeStamp + " [INFO] " + info;
System.out.println(ConsoleColor.WHITE + log + ConsoleColor.RESET);
try {
writeToLog(log);
} catch (IOException exception) {
exception.printStackTrace();
}
}
public final void warn(String warn) {
// Get current date and time
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
Date date = new Date();
String timeStamp = formatter.format(date);
// Writing log
String log = timeStamp + " [WARN] " + warn;
System.out.println(ConsoleColor.YELLOW + log + ConsoleColor.RESET);
try {
writeToLog(log);
} catch (IOException exception) {
exception.printStackTrace();
}
}
public final void error(String error) {
// Get current date and time
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
Date date = new Date();
String timeStamp = formatter.format(date);
// Writing log
String log = timeStamp + " [ERROR] " + error;
System.out.println(ConsoleColor.RED + log + ConsoleColor.RESET);
try {
writeToLog(log);
} catch (IOException exception) {
exception.printStackTrace();
}
}
public final void exception(String infoLine, Exception exception) {
// Get current date and time
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
Date date = new Date();
String timeStamp = formatter.format(date);
// Writing log
String log = timeStamp + " [EXCEPTION-INFO] " + infoLine + System.lineSeparator() + timeStamp + " [EXCEPTION-MESSAGE] " + exception.getMessage();
System.out.println(ConsoleColor.RED + log + ConsoleColor.RESET);
try {
writeToLog(log);
} catch (IOException exception1) {
exception1.printStackTrace();
}
}
public final void debug(String debug) throws IOException {
// Get current date and time
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
Date date = new Date();
String timeStamp = formatter.format(date);
// Writing log
String log = timeStamp + " [DEBUG] " + debug;
System.out.println(ConsoleColor.BLUE + log + ConsoleColor.RESET);
try {
writeToLog(log);
} catch (IOException exception) {
exception.printStackTrace();
}
}
}