Partial work

This commit is contained in:
2024-06-13 12:30:48 -04:00
parent 85203b29e4
commit 4106bdb662
3 changed files with 57 additions and 32 deletions

View File

@@ -47,8 +47,6 @@ namespace jlog
void log(std::vector<token> tokens);
void log (const std::string& message);
void log (const std::string& contextColorCode, const std::string& context, const std::string& message);
void direct (const std::string& message);
void info (const std::string& message);
void verbose(const std::string& message);

View File

@@ -4,7 +4,7 @@
int main()
{
jlog::log("Test Program");
jlog::info("Do the needful!");
jlog::debug("Debugging Message 123");
jlog::error("Big problem!");
jlog::verbose("Irrelevant message...");

View File

@@ -1,3 +1,4 @@
#include <source_location>
#include <jlog/ansi_escape_codes.hpp>
#include <jlog/jlog.hpp>
#include <string>
@@ -27,59 +28,85 @@ namespace jlog {
void log_to_console(const std::string &message)
{
std::cout << message << std::endl;
std::cout << message;
}
void log_to_file(const std::string &message)
{
std::ofstream latest_log("latest.log", std::ios_base::app);
latest_log << message << std::endl;
latest_log << message;
latest_log.close();
}
void log(std::vector<token> tokens) {
for (token t : tokens) {
if (t.delimiter != "")
log(std::format("{}{}{}{}{}", t.colorCode, t.delimiter[0], t.content, t.delimiter[1], ansi_escape_codes::RESET));
else
log(std::format("{}{}{}{}", t.colorCode, t.content, ansi_escape_codes::RESET));
if (t.delimiter != "") {
log_to_console(std::format("{}{}{}{}{} ", t.colorCode, t.delimiter[0], t.content, t.delimiter[1], ansi_escape_codes::RESET));
log_to_file(std::format("{}{}{} ", t.delimiter[0], t.content, t.delimiter[1]));
} else {
log_to_console(std::format("{}{}{} ", t.colorCode, t.content, ansi_escape_codes::RESET));
log_to_file(t.content + " ");
}
}
log_to_console("\n");
log_to_file("\n");
}
void log(const std::string& message)
{
auto output = std::format("[{}] [{}:{} {}] {}", get_timestamp(), __FILE__, __LINE__, __PRETTY_FUNCTION__, message);
log_to_console(output);
log_to_file(output);
on_log({.level = severity::none, .content = message, .timestamp = get_timestamp()});
void direct(const std::string &message) { log({{.content = message, .delimiter=""}});}
void info(const std::string &message) {
auto timestamp = token{.content = get_timestamp()};
auto severity = token{.colorCode = ansi_escape_codes::FG_WHITE, .content = "INFO"};
auto content = token{.content = message, .delimiter = ""};
//auto trace = token{.content = };
log({timestamp, severity, content});
}
void log(const std::string &contextColorCode, const std::string &context, const std::string &message)
{
log_to_console(std::format("[{}] {}[{}]{} {}", get_timestamp(), contextColorCode, context, ansi_escape_codes::RESET, message));
log_to_file(std::format("[{}] [{}] {}", get_timestamp(), context, message));
on_log({.level = severity::none, .content = message, .timestamp = get_timestamp()});
void verbose(const std::string &message) {
auto timestamp = token{.content = get_timestamp()};
auto severity = token{.colorCode = ansi_escape_codes::FG_CYAN, .content = "VERBOSE"};
auto content = token{.content = message, .delimiter = ""};
//auto trace = token{.content = };
log({timestamp, severity, content});
//log(ansi_escape_codes::FG_CYAN, "VERBOSE", message);
}
void direct(const std::string &message) { log(message);}
void debug(const std::string &message) {
auto timestamp = token{.content = get_timestamp()};
auto severity = token{.colorCode = ansi_escape_codes::FG_GREEN, .content = "DEBUG"};
auto content = token{.content = message, .delimiter = ""};
//auto trace = token{.content = };
log({timestamp, severity, content});
void info(const std::string &message) {log(ansi_escape_codes::FG_WHITE, "INFO", message); }
}
void verbose(const std::string &message) { log(ansi_escape_codes::FG_CYAN, "VERBOSE", message); }
void warning(const std::string &message) {
auto timestamp = token{.content = get_timestamp()};
auto severity = token{.colorCode = ansi_escape_codes::FG_YELLOW, .content = "WARNING"};
auto content = token{.content = message, .delimiter = ""};
//auto trace = token{.content = };
log({timestamp, severity, content});
//log(ansi_escape_codes::FG_YELLOW, "WARNING", message);
}
void debug(const std::string &message) { log(ansi_escape_codes::FG_GREEN, "DEBUG", message); }
void warning(const std::string &message) { log(ansi_escape_codes::FG_YELLOW, "WARNING", message); }
void error(const std::string &message) { log(ansi_escape_codes::FG_RED, "ERROR", message); }
void error(const std::string &message) {
auto timestamp = token{.content = get_timestamp()};
auto severity = token{.colorCode = ansi_escape_codes::FG_RED, .content = "ERROR"};
auto content = token{.content = message, .delimiter = ""};
//auto trace = token{.content = };
log({timestamp, severity, content});
//log(ansi_escape_codes::FG_RED, "ERROR", message);
}
void fatal(const std::string &message) {
auto timestamp = token{.content = get_timestamp()};
auto trace = token{.content = };
log(std::vector<token>(timestamp, {}));
auto severity = token{.colorCode = ansi_escape_codes::FG_BRIGHT_RED, .content = "FATAL"};
auto content = token{.content = message, .delimiter = ""};
auto trace = token{.content = __PRETTY_FUNCTION__};
auto source = std::source_location::current();
auto file = token{.content = std::format("{}:{}", __FILE__, __LINE__)};
log({timestamp, trace, file, severity, content});
}
}