36 if (!
file.is_open()) {
37 std::cerr <<
"Failed to open log file: " <<
m_FilePath << std::endl;
43 auto now = std::time(
nullptr);
44 auto ts = fmt::format(
"{:%d-%b-%Y %H:%M:%S}", fmt::localtime(now));
45 file << fmt::format(
"\n Log started: {}\n", ts);
53 auto now = std::time(
nullptr);
54 auto ts = fmt::format(
"{:%d-%b-%Y %H:%M:%S}", fmt::localtime(now));
56 file << fmt::format(
" Log ended: {}\n", ts);
64 fmt::color levelColor = fmt::color::white;
68 levelStr =
"DEBUG"; levelColor = fmt::color::light_blue;
break;
70 levelStr =
"INFO"; levelColor = fmt::color::green;
break;
72 levelStr =
"WARN"; levelColor = fmt::color::yellow;
break;
74 levelStr =
"ERROR"; levelColor = fmt::color::orange_red;
break;
76 levelStr =
"CRITICAL"; levelColor = fmt::color::red;
break;
78 levelStr =
"LOG";
break;
81 auto now = std::time(
nullptr);
82 auto timestamp = fmt::format(
"{:%d-%m-%Y %H:%M:%S}", fmt::localtime(now));
85 std::string logMessage = fmt::format(
86 "{} :: {:<8} :: {}\n", timestamp, levelStr, msg
95 logMessage = fmt::format(
98 fmt::format(fg(levelColor) | fmt::emphasis::bold,
"{:<8}", levelStr),
102 fmt::print(
"{}", logMessage);
Display and formatting utilities for terminal and file output.
Logger utilities for deltaFlow, providing logging macros and a singleton Logger class.
Level
Log severity levels.
@ WARN
Warning conditions.
@ INFO
Informational messages.
@ CRITICAL
Critical conditions.
Singleton logger class for deltaFlow.
static Logger & getLogger()
Get the singleton Logger instance.
Level m_Level
Minimum logging level.
Logger(const std::string &name, Level level)
Construct a logger with file name and log level.
std::string m_FilePath
Path to the log file.
~Logger()
Destructor flushes and closes log file.
void log(const std::string &msg, const Level &level)
Log a message at a given severity level.
std::ofstream file
Output file stream.
std::string separator(char ch='=')
Returns a separator line of the given character.
std::string fileBanner()
Returns a full plain-text banner for output/log files.