/*** Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: Logging.hpp Date: 2021-9-21 Author: Reece ***/ #pragma once #include "ILogger.hpp" #include "IBasicSink.hpp" #include "IBasicSinkRB.hpp" #include "Sinks.hpp" namespace Aurora::Console::Logging { #if defined(_AUHAS_FMT) template static inline void WriteLinef(const AuString &tag, const AuString &msg, T&& ... args) { WriteLine(ConsoleMessage(EAnsiColor::eReset, tag, fmt::format(msg, std::forward(args)...))); } template static inline void WriteLinef(EAnsiColor color, const AuString &tag, const AuString &msg, T&& ... args) { WriteLine(ConsoleMessage(color, tag, fmt::format(msg, std::forward(args)...))); } template static inline void LogVerbose(const AuString &line, T&& ... args) { WriteLinef(EAnsiColor::eYellow, "Verbose", line, std::forward(args)...); } #if defined(STAGING) || defined(DEBUG) template static inline void LogVerboseNoShip(const AuString &line, T&& ... args) { WriteLinef(EAnsiColor::eYellow, "Verbose", line, std::forward(args)...); } #else #define LogVerboseNoShip(...) DoNothing() #endif static inline void DoNothing() { } template static inline void LogInfo(const AuString &line, T&& ... args) { WriteLinef(EAnsiColor::eGreen, "Info", line, std::forward(args)...); } template static inline void LogDbg(const AuString &line, T&& ... args) { WriteLinef(EAnsiColor::eYellow, "Debug", line, std::forward(args)...); } template static inline void LogWarn(const AuString &line, T&& ... args) { WriteLinef(EAnsiColor::eRed, "Warn", line, std::forward(args)...); } template static inline void LogError(const AuString &line, T&& ... args) { WriteLinef(EAnsiColor::eBoldRed, "Error", line, std::forward(args)...); } template static inline void LogGame(const AuString &line, T&& ... args) { WriteLinef(EAnsiColor::eBlue, "Game", line, std::forward(args)...); } #endif }