Upload files to "/"
This commit is contained in:
58
logging.d
Normal file
58
logging.d
Normal file
@@ -0,0 +1,58 @@
|
||||
module angel.utils.logging;
|
||||
|
||||
// Internal imports
|
||||
import angel.config : config;
|
||||
import angel.utils.constants;
|
||||
// External imports
|
||||
import std.stdio;
|
||||
import std.datetime;
|
||||
import std.file;
|
||||
import std.format;
|
||||
import std.string;
|
||||
|
||||
enum LogLevel {
|
||||
Debug,
|
||||
Event,
|
||||
Warning,
|
||||
Error
|
||||
}
|
||||
|
||||
class Logger {
|
||||
private static string getTimestamp() {
|
||||
auto now = Clock.currTime();
|
||||
return format!"%04d-%02d-%02d %02d:%02d:%02d"(
|
||||
now.year, now.month, now.day,
|
||||
now.hour, now.minute, now.second
|
||||
);
|
||||
}
|
||||
|
||||
private static string getLogSymbol(LogLevel level) {
|
||||
switch (level) {
|
||||
case LogLevel.Debug: return "[*]";
|
||||
case LogLevel.Event: return "[i]";
|
||||
case LogLevel.Warning: return "[!]";
|
||||
case LogLevel.Error: return "[E]";
|
||||
default: return "[?]";
|
||||
}
|
||||
}
|
||||
|
||||
private static void writeToFile(string message) {
|
||||
auto file = File(Constants.logFilePath, "a");
|
||||
file.write(message ~ "\n");
|
||||
file.close();
|
||||
}
|
||||
|
||||
public static void log(LogLevel level, string message) {
|
||||
auto timestamp = getTimestamp();
|
||||
auto symbol = getLogSymbol(level);
|
||||
|
||||
auto logMessage = timestamp ~ " " ~ symbol ~ " " ~ message;
|
||||
|
||||
writeToFile(logMessage);
|
||||
if (level == LogLevel.Debug && !config.debug_mode) {
|
||||
return;
|
||||
} else {
|
||||
writeln(logMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user