diff --git a/include/Logging.hpp b/include/Logging.hpp index 591a41e..54403ba 100644 --- a/include/Logging.hpp +++ b/include/Logging.hpp @@ -15,109 +15,35 @@ namespace Mutil::Logging { private: /// Output stream, default std::clog. std::ostream &os = std::clog; - /// Lambda formatting function, primarily for storing a format string in a versatile way, users allowed to supply their own. - //std::function λPrefix; + /// Lambda function on message, can be used for formatting std::function λMessage; - //std::function λMessage; - //std::function λSuffix; public: - /// Default constructor, just simple messages to be written to console + /// Default constructor, just simple messages to be written to console stderr LoggerObj() {}; /// Construct with specified output stream LoggerObj(std::ostream &os) : os(os) {}; - /// Full construction LoggerObj(std::ostream &os, std::function λMessage) : os(os), λMessage(λMessage) {}; - - /// Full construction - //LoggerObj(std::ostream &os, - // std::function λprefix, - // std::function λmessage, - // std::function λsuffix - // ) : os(os), λPrefix(λprefix), λMessage(λmessage), λSuffix(λsuffix) {}; public: /// Send a simple log message - //void operator()(const std::string_view message) { - void operator()(const std::string message) { - //std::ostringstream oss; - - //λPrefix && os << λPrefix(); - //(λMessage && os << λMessage(message)) || os << message; - //std::cout << λMessage(message); - //λSuffix && os << λSuffix(); - - //os << oss.str() << std::endl; - + void operator()(const std::string_view message) { λMessage ? os << λMessage(message) : os << message; os << std::endl; } - /// Send a formatted/complex log message template void operator()(const std::format_string fmt, Args&&... args) { - //std::ostringstream oss; std::string m = std::vformat(fmt.get(), std::make_format_args(args...)); - //λPrefix && os << λPrefix(); - //(λMessage && os << λMessage(m)) || os << m; - - //λSuffix && os << λSuffix(); - - //os << oss.str() << std::endl; - λMessage ? os << λMessage(m) : os << m; - os << std::endl; }; - /// Send log messages using logger as a stream template LoggerObj& operator<<(In message) { - //std::ostringstream oss; - //oss << message; - //operator()(oss.str()); - - //(λ && os << λ() << message) || - //os << message; - //return os; - - //λPrefix && os << λPrefix(); - //(λMessage && os << λMessage(message)) || os << message; λMessage ? os << λMessage(message) : os << message; - - //λSuffix && os << λSuffix(); os << std::endl; - return *this; }; }; - - - - /* - class Info : public LoggerObj { - public: - Info() : LoggerObj("[I] | ") {}; - }; - - class Warning : public LoggerObj { - public: - Warning() : LoggerObj("[W] | ") {}; - }; - - class Error : public LoggerObj { - public: - Error() : LoggerObj("[E] | ") {}; - }; - - class Verbose : public LoggerObj { - public: - Verbose() : LoggerObj("[V] | ") {}; - }; - - class Debug : public LoggerObj { - public: - Debug() : LoggerObj("[D] | ") {}; - }; - */ } diff --git a/main.cpp b/main.cpp index eaec5c9..466e72d 100644 --- a/main.cpp +++ b/main.cpp @@ -7,32 +7,14 @@ class Debug : public Mutil::Logging::LoggerObj { std::string NormalRen = Mutil::Console::Graphics::Rendition().Compile(); std::string MessageRen = Mutil::Console::Graphics::Rendition(Mutil::Console::Graphics::RItalic, 135).Compile(); std::string TraceRen = Mutil::Console::Graphics::Rendition(Mutil::Console::Graphics::RBold, 241).Compile(); - //std::function λMessage = [this](const std::string_view m) { - // return NormalRen + MessageRen + std::format("[D] {}", m) + NormalRen; - //}; - //static std::string λMessage(const std::string m) { - // return Mutil::Console::Graphics::Rendition(Mutil::Console::Graphics::RItalic, 135).Compile() + std::format("[D] {}", m) + Mutil::Console::Graphics::Rendition().Compile(); - //return - //return Mutil::Console::Graphics::String(std::format("[D] {}", m), {Mutil::Console::Graphics::RItalic, 135}).Render(); - //}; public: - Debug() : LoggerObj(std::cout, [this](const std::string_view m) {return NormalRen + MessageRen + std::format("[D] {}", m) + NormalRen;}) {}; - + Debug() : LoggerObj(std::cout, [this](const std::string_view m) {return std::format("{}{}[D] {}{}", NormalRen, MessageRen, m, NormalRen); }) {}; void Trace(const std::source_location &location = std::source_location::current()) { this->operator()("{}{} @ {}:{}", TraceRen, location.function_name(), location.file_name(), location.line()); - //Mutil::Console::Graphics::Rendition r(Mutil::Console::Graphics::RBold, 241); - - //this->operator()("{}{} @ {}:{}", r.Compile(), location.function_name(), location.file_name(), location.line()); - //this->operator()(Mutil::Console::Graphics::String( - // std::format("{} @ {}:{}", location.function_name(), location.file_name(), location.line()), - // {Mutil::Console::Graphics::RBold, 241}).Render()); }; }; int main() { - std::function λprefix = [] { - return Mutil::Console::Graphics::Rendition(Mutil::Console::Graphics::RItalic, 252, 186, 3).Compile() + "--> " + Mutil::Console::Graphics::Rendition(Mutil::Console::Graphics::RNormal).Compile(); - }; std::function λmessage = [](const std::string_view m) { return std::format("{}{} {}{}{}", Mutil::Console::Graphics::Rendition(Mutil::Console::Graphics::RItalic, 252, 186, 3).Compile(), @@ -40,13 +22,7 @@ int main() { Mutil::Console::Graphics::Rendition(Mutil::Console::Graphics::RUnderline, 74).Compile(), m, Mutil::Console::Graphics::Rendition().Compile()); - //return Mutil::Console::Graphics::Rendition(Mutil::Console::Graphics::RItalic, 252, 186, 3).Compile() + "--> " + Mutil::Console::Graphics::Rendition(Mutil::Console::Graphics::RUnderline, 74).Compile() + m + Mutil::Console::Graphics::Rendition(Mutil::Console::Graphics::RNormal).Compile() - - //return Mutil::Console::Graphics::Rendition(Mutil::Console::Graphics::RUnderline, 74).Compile() + m + Mutil::Console::Graphics::Rendition(Mutil::Console::Graphics::RNormal).Compile(); }; - //std::function λsuffix = [] { - // return " 0"; - //}; Mutil::Logging::LoggerObj l(std::cout, λmessage); @@ -61,21 +37,10 @@ int main() { Debug d; d << "DEBUGGGGING"; d.Trace(); - - Mutil::Console::Graphics::Rendition sr( - Mutil::Console::Graphics::RStrikethrough | - Mutil::Console::Graphics::RUnderline, - 28); - Mutil::Console::Graphics::String s("balls"); - //s.Style({Mutil::Console::Graphics::RBackgroundColor, 69}); - //s.Style(); - - //std::cout << s.Style(sr).Render() << s.Style({Mutil::Console::Graphics::RBackgroundColor, 69}).Render() << std::endl; std::cout << s.Render({Mutil::Console::Graphics::RItalic}) << std::endl; //Desktop::Browser::OpenURL("https://git.redacted.cc/maxine/mutil"); - //Mutil::Console::Graphics::SGARG a = Mutil::Console::Graphics::TextStyle::Underline }