From 0fd7462dd0dfb3de2f626d0d7fda8da47d91d946 Mon Sep 17 00:00:00 2001 From: IOE Date: Sun, 12 Nov 2023 19:45:13 +0900 Subject: [PATCH] feat: Add timestamp to LogRecord struct --- include/nodec/logging/log_record.hpp | 11 +++++++---- include/nodec/logging/logger.hpp | 16 ++++++++-------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/include/nodec/logging/log_record.hpp b/include/nodec/logging/log_record.hpp index 1907bb8..d0875e2 100644 --- a/include/nodec/logging/log_record.hpp +++ b/include/nodec/logging/log_record.hpp @@ -1,6 +1,7 @@ #ifndef NODEC__LOGGING__LOG_RECORD_HPP_ #define NODEC__LOGGING__LOG_RECORD_HPP_ +#include #include #include @@ -10,14 +11,16 @@ namespace nodec { namespace logging { struct LogRecord { - LogRecord(const std::string &name, Level level, const std::string &message, const char *file, std::size_t line) - : name(name), level(level), message(message), file(file), line(line) {} +public: + LogRecord(std::chrono::system_clock::time_point time, const std::string &name, Level level, const std::string &message, const char *file, std::size_t line) + : time(time), name(name), level(level), message(message), file(file), line(line) {} + const std::chrono::system_clock::time_point time; const std::string &name; - Level level; + const Level level; const std::string &message; const char *file; - std::size_t line; + const std::size_t line; }; } // namespace logging diff --git a/include/nodec/logging/logger.hpp b/include/nodec/logging/logger.hpp index c9e91f8..4be8d66 100644 --- a/include/nodec/logging/logger.hpp +++ b/include/nodec/logging/logger.hpp @@ -63,7 +63,7 @@ class Logger { parent_->handle(record); } } - + class LogStream { public: LogStream(Logger &logger, Level level, const char *file, std::size_t line) @@ -122,7 +122,7 @@ class Logger { * DEBUG: Detailed information, typically of interest only when diagnosing problems. */ void debug(const std::string &message, const char *file, std::size_t line) { - handle(LogRecord{name_, Level::Debug, message, file, line}); + handle(LogRecord{std::chrono::system_clock::now(), name_, Level::Debug, message, file, line}); } /** @@ -130,7 +130,7 @@ class Logger { * INFO: Confirmation that things are working as expected. */ void info(const std::string &message, const char *file, std::size_t line) { - handle(LogRecord{name_, Level::Info, message, file, line}); + handle(LogRecord{std::chrono::system_clock::now(), name_, Level::Info, message, file, line}); } /** @@ -139,7 +139,7 @@ class Logger { * The software is still working as expected. */ void warn(const std::string &message, const char *file, std::size_t line) { - handle(LogRecord{name_, Level::Warn, message, file, line}); + handle(LogRecord{std::chrono::system_clock::now(), name_, Level::Warn, message, file, line}); } /** @@ -147,7 +147,7 @@ class Logger { * ERROR: Due to a more serious problem, the software has not been able to perform some function. */ void error(const std::string &message, const char *file, std::size_t line) { - handle(LogRecord{name_, Level::Error, message, file, line}); + handle(LogRecord{std::chrono::system_clock::now(), name_, Level::Error, message, file, line}); } /** @@ -155,14 +155,14 @@ class Logger { * FATAL: A serious error, indicating that the program itself may be unable to continue running. */ void fatal(const std::string &message, const char *file, std::size_t line) { - handle(LogRecord{name_, Level::Fatal, message, file, line}); + handle(LogRecord{std::chrono::system_clock::now(), name_, Level::Fatal, message, file, line}); } - + /** * @brief Logs a message with level. */ void log(Level level, const std::string &message, const char *file, std::size_t line) { - handle(LogRecord{name_, level, message, file, line}); + handle(LogRecord{std::chrono::system_clock::now(), name_, level, message, file, line}); } LogStream debug(const char *file, std::size_t line) {