aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-11-13 14:35:27 +0100
committerLoek Le Blansch <loek@pipeframe.xyz>2024-11-13 14:35:27 +0100
commit1df510f4a2dbe0fcb8c9f8a34695abf8d33f9ddc (patch)
tree2a901a09957abe1363f5b21ee259036f23f66087 /src
parentdaf2a06ac778f203e1473431afe09476e8182f65 (diff)
update logging to use C++20 format and classes
Diffstat (limited to 'src')
-rw-r--r--src/crepe/CMakeLists.txt1
-rw-r--r--src/crepe/ComponentManager.cpp2
-rw-r--r--src/crepe/Exception.cpp13
-rw-r--r--src/crepe/Exception.h16
-rw-r--r--src/crepe/Exception.hpp13
-rw-r--r--src/crepe/api/Animator.cpp2
-rw-r--r--src/crepe/api/AssetManager.cpp2
-rw-r--r--src/crepe/api/BehaviorScript.hpp2
-rw-r--r--src/crepe/api/Camera.cpp2
-rw-r--r--src/crepe/api/Config.h4
-rw-r--r--src/crepe/api/LoopTimer.cpp2
-rw-r--r--src/crepe/api/SaveManager.cpp2
-rw-r--r--src/crepe/api/Script.h5
-rw-r--r--src/crepe/api/Sprite.cpp2
-rw-r--r--src/crepe/api/Texture.cpp2
-rw-r--r--src/crepe/api/Transform.cpp2
-rw-r--r--src/crepe/facade/DB.cpp2
-rw-r--r--src/crepe/facade/SDLContext.cpp2
-rw-r--r--src/crepe/facade/Sound.cpp2
-rw-r--r--src/crepe/facade/SoundContext.cpp2
-rw-r--r--src/crepe/system/AnimatorSystem.cpp2
-rw-r--r--src/crepe/system/RenderSystem.cpp2
-rw-r--r--src/crepe/system/ScriptSystem.cpp2
-rw-r--r--src/crepe/util/CMakeLists.txt7
-rw-r--r--src/crepe/util/Log.cpp (renamed from src/crepe/util/log.cpp)32
-rw-r--r--src/crepe/util/Log.h80
-rw-r--r--src/crepe/util/Log.hpp18
-rw-r--r--src/crepe/util/LogColor.cpp19
-rw-r--r--src/crepe/util/LogColor.h29
-rw-r--r--src/crepe/util/fmt.cpp35
-rw-r--r--src/crepe/util/fmt.h10
-rw-r--r--src/crepe/util/log.h39
-rw-r--r--src/example/log.cpp13
33 files changed, 188 insertions, 180 deletions
diff --git a/src/crepe/CMakeLists.txt b/src/crepe/CMakeLists.txt
index fc95bd3..52a781e 100644
--- a/src/crepe/CMakeLists.txt
+++ b/src/crepe/CMakeLists.txt
@@ -16,6 +16,7 @@ target_sources(crepe PUBLIC FILE_SET HEADERS FILES
ValueBroker.h
ValueBroker.hpp
Exception.h
+ Exception.hpp
)
add_subdirectory(api)
diff --git a/src/crepe/ComponentManager.cpp b/src/crepe/ComponentManager.cpp
index 85149c8..7123905 100644
--- a/src/crepe/ComponentManager.cpp
+++ b/src/crepe/ComponentManager.cpp
@@ -1,4 +1,4 @@
-#include "util/log.h"
+#include "util/Log.h"
#include "ComponentManager.h"
diff --git a/src/crepe/Exception.cpp b/src/crepe/Exception.cpp
index bfdbcdd..3217169 100644
--- a/src/crepe/Exception.cpp
+++ b/src/crepe/Exception.cpp
@@ -1,16 +1,11 @@
-#include <cstdarg>
-
#include "Exception.h"
-#include "util/fmt.h"
-using namespace std;
using namespace crepe;
+using namespace std;
const char * Exception::what() const noexcept { return error.c_str(); }
-Exception::Exception(const char * fmt, ...) {
- va_list args;
- va_start(args, fmt);
- this->error = va_stringf(args, fmt);
- va_end(args);
+Exception::Exception(const string & msg) {
+ this->error = msg;
}
+
diff --git a/src/crepe/Exception.h b/src/crepe/Exception.h
index 80af068..ed3ab15 100644
--- a/src/crepe/Exception.h
+++ b/src/crepe/Exception.h
@@ -2,21 +2,31 @@
#include <exception>
#include <string>
+#include <format>
namespace crepe {
-//! Exception class with printf-style constructor
+//! Exception class
class Exception : public std::exception {
public:
- //! printf
- Exception(const char * fmt, ...);
+ //! Exception with plain message
+ Exception(const std::string & msg);
+
+ //! Exception with \c std::format message
+ template<class... Args>
+ Exception(std::format_string<Args...> fmt, Args&&... args);
+
//! Get formatted error message
const char * what() const noexcept;
protected:
Exception() = default;
+
//! Formatted error message
std::string error;
};
} // namespace crepe
+
+#include "Exception.hpp"
+
diff --git a/src/crepe/Exception.hpp b/src/crepe/Exception.hpp
new file mode 100644
index 0000000..d813879
--- /dev/null
+++ b/src/crepe/Exception.hpp
@@ -0,0 +1,13 @@
+#pragma once
+
+#include "Exception.h"
+
+namespace crepe {
+
+template<class... Args>
+Exception::Exception(std::format_string<Args...> fmt, Args&&... args) {
+ this->error = std::format(fmt, std::forward<Args>(args)...);
+}
+
+}
+
diff --git a/src/crepe/api/Animator.cpp b/src/crepe/api/Animator.cpp
index 58fee2a..863dce6 100644
--- a/src/crepe/api/Animator.cpp
+++ b/src/crepe/api/Animator.cpp
@@ -1,7 +1,7 @@
#include <cstdint>
-#include "util/log.h"
+#include "util/Log.h"
#include "Animator.h"
#include "Component.h"
diff --git a/src/crepe/api/AssetManager.cpp b/src/crepe/api/AssetManager.cpp
index b891760..3925758 100644
--- a/src/crepe/api/AssetManager.cpp
+++ b/src/crepe/api/AssetManager.cpp
@@ -1,4 +1,4 @@
-#include "util/log.h"
+#include "util/Log.h"
#include "AssetManager.h"
diff --git a/src/crepe/api/BehaviorScript.hpp b/src/crepe/api/BehaviorScript.hpp
index 4751607..bc157fd 100644
--- a/src/crepe/api/BehaviorScript.hpp
+++ b/src/crepe/api/BehaviorScript.hpp
@@ -2,7 +2,7 @@
#include <type_traits>
-#include "../util/log.h"
+#include "../util/Log.h"
#include "BehaviorScript.h"
#include "Script.h"
diff --git a/src/crepe/api/Camera.cpp b/src/crepe/api/Camera.cpp
index 6355a03..6f0deb1 100644
--- a/src/crepe/api/Camera.cpp
+++ b/src/crepe/api/Camera.cpp
@@ -1,7 +1,7 @@
#include <cstdint>
-#include "util/log.h"
+#include "util/Log.h"
#include "Camera.h"
#include "Color.h"
diff --git a/src/crepe/api/Config.h b/src/crepe/api/Config.h
index 8c9e643..8fd381e 100644
--- a/src/crepe/api/Config.h
+++ b/src/crepe/api/Config.h
@@ -1,6 +1,6 @@
#pragma once
-#include "../util/log.h"
+#include "../util/Log.h"
namespace crepe {
@@ -29,7 +29,7 @@ public:
* Only messages with equal or higher priority than this value will be
* logged.
*/
- LogLevel level = LogLevel::INFO;
+ Log::Level level = Log::Level::INFO;
/**
* \brief Colored log output
*
diff --git a/src/crepe/api/LoopTimer.cpp b/src/crepe/api/LoopTimer.cpp
index 8f09e41..b3aec22 100644
--- a/src/crepe/api/LoopTimer.cpp
+++ b/src/crepe/api/LoopTimer.cpp
@@ -1,7 +1,7 @@
#include <chrono>
#include "../facade/SDLContext.h"
-#include "../util/log.h"
+#include "../util/Log.h"
#include "LoopTimer.h"
diff --git a/src/crepe/api/SaveManager.cpp b/src/crepe/api/SaveManager.cpp
index 43276c5..2974b91 100644
--- a/src/crepe/api/SaveManager.cpp
+++ b/src/crepe/api/SaveManager.cpp
@@ -1,5 +1,5 @@
#include "../facade/DB.h"
-#include "../util/log.h"
+#include "../util/Log.h"
#include "Config.h"
#include "SaveManager.h"
diff --git a/src/crepe/api/Script.h b/src/crepe/api/Script.h
index 49e625f..ed247ad 100644
--- a/src/crepe/api/Script.h
+++ b/src/crepe/api/Script.h
@@ -3,11 +3,8 @@
#include <vector>
namespace crepe {
-class ScriptSystem;
-}
-
-namespace crepe {
+class ScriptSystem;
class BehaviorScript;
class Script {
diff --git a/src/crepe/api/Sprite.cpp b/src/crepe/api/Sprite.cpp
index 6f0433f..ac0079e 100644
--- a/src/crepe/api/Sprite.cpp
+++ b/src/crepe/api/Sprite.cpp
@@ -1,6 +1,6 @@
#include <memory>
-#include "../util/log.h"
+#include "../util/Log.h"
#include "facade/SDLContext.h"
#include "Component.h"
diff --git a/src/crepe/api/Texture.cpp b/src/crepe/api/Texture.cpp
index 5ebd23d..8ddeac5 100644
--- a/src/crepe/api/Texture.cpp
+++ b/src/crepe/api/Texture.cpp
@@ -1,7 +1,7 @@
#include <SDL2/SDL_render.h>
#include "../facade/SDLContext.h"
-#include "../util/log.h"
+#include "../util/Log.h"
#include "Asset.h"
#include "Texture.h"
diff --git a/src/crepe/api/Transform.cpp b/src/crepe/api/Transform.cpp
index e401120..e9108c4 100644
--- a/src/crepe/api/Transform.cpp
+++ b/src/crepe/api/Transform.cpp
@@ -1,4 +1,4 @@
-#include "util/log.h"
+#include "../util/Log.h"
#include "Transform.h"
diff --git a/src/crepe/facade/DB.cpp b/src/crepe/facade/DB.cpp
index 405f7c4..ec6191b 100644
--- a/src/crepe/facade/DB.cpp
+++ b/src/crepe/facade/DB.cpp
@@ -1,7 +1,7 @@
#include <cstring>
#include "Exception.h"
-#include "util/log.h"
+#include "util/Log.h"
#include "DB.h"
diff --git a/src/crepe/facade/SDLContext.cpp b/src/crepe/facade/SDLContext.cpp
index 39d0d4d..a28f7bd 100644
--- a/src/crepe/facade/SDLContext.cpp
+++ b/src/crepe/facade/SDLContext.cpp
@@ -15,7 +15,7 @@
#include "../api/Sprite.h"
#include "../api/Texture.h"
#include "../api/Transform.h"
-#include "../util/log.h"
+#include "../util/Log.h"
#include "Exception.h"
#include "SDLContext.h"
diff --git a/src/crepe/facade/Sound.cpp b/src/crepe/facade/Sound.cpp
index 648ec81..49fb8dc 100644
--- a/src/crepe/facade/Sound.cpp
+++ b/src/crepe/facade/Sound.cpp
@@ -1,4 +1,4 @@
-#include "../util/log.h"
+#include "../util/Log.h"
#include "Sound.h"
#include "SoundContext.h"
diff --git a/src/crepe/facade/SoundContext.cpp b/src/crepe/facade/SoundContext.cpp
index 5e5a3a9..deb2b62 100644
--- a/src/crepe/facade/SoundContext.cpp
+++ b/src/crepe/facade/SoundContext.cpp
@@ -1,4 +1,4 @@
-#include "../util/log.h"
+#include "../util/Log.h"
#include "SoundContext.h"
diff --git a/src/crepe/system/AnimatorSystem.cpp b/src/crepe/system/AnimatorSystem.cpp
index bf45362..1c101fa 100644
--- a/src/crepe/system/AnimatorSystem.cpp
+++ b/src/crepe/system/AnimatorSystem.cpp
@@ -5,7 +5,7 @@
#include "api/Animator.h"
#include "facade/SDLContext.h"
-#include "util/log.h"
+#include "util/Log.h"
#include "AnimatorSystem.h"
#include "ComponentManager.h"
diff --git a/src/crepe/system/RenderSystem.cpp b/src/crepe/system/RenderSystem.cpp
index 10211a3..3ff5b4f 100644
--- a/src/crepe/system/RenderSystem.cpp
+++ b/src/crepe/system/RenderSystem.cpp
@@ -5,7 +5,7 @@
#include "../api/Sprite.h"
#include "../api/Transform.h"
#include "../facade/SDLContext.h"
-#include "../util/log.h"
+#include "../util/Log.h"
#include "RenderSystem.h"
diff --git a/src/crepe/system/ScriptSystem.cpp b/src/crepe/system/ScriptSystem.cpp
index f2673e7..aceb218 100644
--- a/src/crepe/system/ScriptSystem.cpp
+++ b/src/crepe/system/ScriptSystem.cpp
@@ -5,7 +5,7 @@
#include "../ComponentManager.h"
#include "../api/BehaviorScript.h"
#include "../api/Script.h"
-#include "../util/log.h"
+#include "../util/Log.h"
#include "ScriptSystem.h"
diff --git a/src/crepe/util/CMakeLists.txt b/src/crepe/util/CMakeLists.txt
index 0fa4343..4be738a 100644
--- a/src/crepe/util/CMakeLists.txt
+++ b/src/crepe/util/CMakeLists.txt
@@ -1,13 +1,12 @@
target_sources(crepe PUBLIC
LogColor.cpp
- log.cpp
- fmt.cpp
+ Log.cpp
)
target_sources(crepe PUBLIC FILE_SET HEADERS FILES
LogColor.h
- log.h
- fmt.h
+ Log.h
+ Log.hpp
Proxy.h
Proxy.hpp
)
diff --git a/src/crepe/util/log.cpp b/src/crepe/util/Log.cpp
index 4a8f8e8..346e08e 100644
--- a/src/crepe/util/log.cpp
+++ b/src/crepe/util/Log.cpp
@@ -4,33 +4,32 @@
#include <string>
#include "../api/Config.h"
-#include "fmt.h"
-#include "log.h"
+#include "Log.h"
using namespace crepe;
using namespace std;
-string log_prefix(LogLevel level) {
+string Log::prefix(const Level & level) {
switch (level) {
- case LogLevel::TRACE:
+ case Level::TRACE:
return LogColor().fg_white().str("[TRACE]") + " ";
- case LogLevel::DEBUG:
+ case Level::DEBUG:
return LogColor().fg_magenta().str("[DEBUG]") + " ";
- case LogLevel::INFO:
+ case Level::INFO:
return LogColor().fg_blue().str("[INFO]") + " ";
- case LogLevel::WARNING:
+ case Level::WARNING:
return LogColor().fg_yellow().str("[WARN]") + " ";
- case LogLevel::ERROR:
+ case Level::ERROR:
return LogColor().fg_red().str("[ERROR]") + " ";
}
return "";
}
-static void log(LogLevel level, const string msg) {
+void Log::log(const Level & level, const string & msg) {
auto & cfg = Config::get_instance();
if (level < cfg.log.level) return;
- string out = log_prefix(level) + msg;
+ string out = Log::prefix(level) + msg;
if (!out.ends_with("\n")) out += "\n";
// TODO: also log to file or smth
@@ -38,16 +37,3 @@ static void log(LogLevel level, const string msg) {
fflush(stdout);
}
-void crepe::logf(const char * fmt, ...) {
- va_list args;
- va_start(args, fmt);
- log(LogLevel::DEBUG, va_stringf(args, fmt));
- va_end(args);
-}
-
-void crepe::logf(LogLevel level, const char * fmt, ...) {
- va_list args;
- va_start(args, fmt);
- log(level, va_stringf(args, fmt));
- va_end(args);
-}
diff --git a/src/crepe/util/Log.h b/src/crepe/util/Log.h
new file mode 100644
index 0000000..4e32e9d
--- /dev/null
+++ b/src/crepe/util/Log.h
@@ -0,0 +1,80 @@
+#pragma once
+
+#include <format>
+
+// allow user to disable debug macros
+#ifndef CREPE_DISABLE_MACROS
+
+#include "LogColor.h"
+
+// utility macros
+#define _crepe_logf_here(level, fmt, ...) crepe::Log::logf(level, "{}" fmt, crepe::LogColor().fg_white(false).str(std::format("{} ({}:{})", __PRETTY_FUNCTION__, __FILE_NAME__, __LINE__)), __VA_ARGS__)
+
+// very illegal global function-style macros
+// NOLINTBEGIN
+#define dbg_logf(fmt, ...) \
+ _crepe_logf_here(crepe::Log::Level::DEBUG, ": " fmt, __VA_ARGS__)
+#define dbg_log(str) _crepe_logf_here(crepe::Log::Level::DEBUG, ": {}", str)
+#define dbg_trace() _crepe_logf_here(crepe::Log::Level::TRACE, "", "")
+// NOLINTEND
+
+#endif
+
+namespace crepe {
+
+/**
+ * \brief Logging utility
+ *
+ * This class is used to output log messages to the console and/or log files.
+ */
+class Log {
+public:
+ //! Log message severity
+ enum Level {
+ TRACE, //< Include (internal) function calls
+ DEBUG, //< Include dbg_logf output
+ INFO, //< General-purpose messages
+ WARNING, //< Non-fatal errors
+ ERROR, //< Fatal errors
+ };
+
+ /**
+ * \brief Log a formatted message
+ *
+ * \param level Message severity
+ * \param msg Formatted message
+ */
+ static void log(const Level & level, const std::string & msg);
+
+ /**
+ * \brief Format a message and log it
+ *
+ * \param level Message severity
+ * \param fmt Message format
+ * \param args Format arguments
+ */
+ template<class... Args>
+ static void logf(const Level & level, std::format_string<Args...> fmt, Args&&... args);
+
+ /**
+ * \brief Format a message and log it (with default severity \c INFO)
+ *
+ * \param fmt Message format
+ * \param args Format arguments
+ */
+ template<class... Args>
+ static void logf(std::format_string<Args...> fmt, Args&&... args);
+
+private:
+ /**
+ * \brief Output a message prefix depending on the log level
+ *
+ * \param level Message severity
+ */
+ static std::string prefix(const Level & level);
+};
+
+} // namespace crepe
+
+#include "Log.hpp"
+
diff --git a/src/crepe/util/Log.hpp b/src/crepe/util/Log.hpp
new file mode 100644
index 0000000..58ba475
--- /dev/null
+++ b/src/crepe/util/Log.hpp
@@ -0,0 +1,18 @@
+#pragma once
+
+#include "Log.h"
+
+namespace crepe {
+
+template<class... Args>
+void Log::logf(std::format_string<Args...> fmt, Args&&... args) {
+ Log::logf(Level::INFO, fmt, std::forward<Args>(args)...);
+}
+
+template<class... Args>
+void Log::logf(const Level & level, std::format_string<Args...> fmt, Args&&... args) {
+ Log::log(level, std::format(fmt, std::forward<Args>(args)...));
+}
+
+}
+
diff --git a/src/crepe/util/LogColor.cpp b/src/crepe/util/LogColor.cpp
index b5fe3ea..ae44d72 100644
--- a/src/crepe/util/LogColor.cpp
+++ b/src/crepe/util/LogColor.cpp
@@ -3,14 +3,12 @@
#include "../api/Config.h"
#include "LogColor.h"
-#include "fmt.h"
-
using namespace crepe;
using namespace std;
static constexpr const char * RESET_CODE = "\e[0m";
-const string LogColor::str(const string & content) {
+const string LogColor::str(const string & content) const {
auto & cfg = Config::get_instance();
string out = content;
if (cfg.log.color) out = this->code + out;
@@ -19,21 +17,8 @@ const string LogColor::str(const string & content) {
return out;
}
-const char * LogColor::c_str(const char * content) {
- this->final = this->str(content == NULL ? "" : content);
- return this->final.c_str();
-}
-
-const char * LogColor::fmt(const char * fmt, ...) {
- va_list args;
- va_start(args, fmt);
- string content = va_stringf(args, fmt);
- va_end(args);
- return this->c_str(content.c_str());
-}
-
LogColor & LogColor::add_code(unsigned int code) {
- this->code += stringf("\e[%dm", code);
+ this->code += format("\e[{}m", code);
return *this;
}
diff --git a/src/crepe/util/LogColor.h b/src/crepe/util/LogColor.h
index c1170cb..4b65127 100644
--- a/src/crepe/util/LogColor.h
+++ b/src/crepe/util/LogColor.h
@@ -4,20 +4,19 @@
namespace crepe {
+/**
+ * \brief Utility class for coloring text using ANSI escape codes
+ *
+ * \note Most methods in this class return a reference to \c this, which may be
+ * used to chain multiple display attributes.
+ */
class LogColor {
public:
- LogColor() = default;
+ //! Get color code as stl string (or color content string)
+ const std::string str(const std::string & content = "") const;
public:
- //! get color code as c-style string (or color content string)
- const char * c_str(const char * content = NULL);
- //! color printf-style format string
- const char * fmt(const char * fmt, ...);
- //! get color code as stl string (or color content string)
- const std::string str(const std::string & content = "");
-
-public:
- //! reset color to default foreground and background color
+ //! Reset color to default foreground and background color
LogColor & reset();
public:
@@ -41,11 +40,19 @@ public:
LogColor & bg_white(bool bright = false);
private:
+ /**
+ * \brief Append SGR escape sequence to \c this->code
+ *
+ * \param code SGR attribute number
+ *
+ * See <https://en.wikipedia.org/wiki/ANSI_escape_code> for magic number
+ * reference.
+ */
LogColor & add_code(unsigned int code);
private:
+ //! Color escape sequence
std::string code = "";
- std::string final = "";
};
} // namespace crepe
diff --git a/src/crepe/util/fmt.cpp b/src/crepe/util/fmt.cpp
deleted file mode 100644
index 4b50da8..0000000
--- a/src/crepe/util/fmt.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <cstdarg>
-#include <cstdio>
-#include <string>
-
-#include "fmt.h"
-
-using namespace std;
-
-string crepe::va_stringf(va_list args, const char * fmt) {
- string out;
-
- va_list args_copy;
- va_copy(args_copy, args);
- size_t length = vsnprintf(NULL, 0, fmt, args_copy);
- // resize to include terminating null byte
- out.resize(length + 1);
- va_end(args_copy);
-
- // vsnprintf adds terminating null byte
- vsnprintf(out.data(), out.size(), fmt, args);
- // resize to actual length
- out.resize(length);
-
- va_end(args);
-
- return out;
-}
-
-string crepe::stringf(const char * fmt, ...) {
- va_list args;
- va_start(args, fmt);
- string out = va_stringf(args, fmt);
- va_end(args);
- return out;
-}
diff --git a/src/crepe/util/fmt.h b/src/crepe/util/fmt.h
deleted file mode 100644
index e319e6e..0000000
--- a/src/crepe/util/fmt.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#pragma once
-
-#include <string>
-
-namespace crepe {
-
-std::string va_stringf(va_list args, const char * fmt);
-std::string stringf(const char * fmt, ...);
-
-} // namespace crepe
diff --git a/src/crepe/util/log.h b/src/crepe/util/log.h
deleted file mode 100644
index 5a1cf00..0000000
--- a/src/crepe/util/log.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#pragma once
-
-// allow user to disable debug macros
-#ifndef CREPE_DISABLE_MACROS
-
-#include "LogColor.h"
-
-// utility macros
-#define _crepe_logf_here(level, format, ...) \
- crepe::logf( \
- level, "%s" format, \
- crepe::LogColor().fg_white(false).fmt( \
- "%s (%s:%d)", __PRETTY_FUNCTION__, __FILE_NAME__, __LINE__), \
- __VA_ARGS__)
-
-// very illegal global function-style macros
-// NOLINTBEGIN
-#define dbg_logf(fmt, ...) \
- _crepe_logf_here(crepe::LogLevel::DEBUG, ": " fmt, __VA_ARGS__)
-#define dbg_log(str) _crepe_logf_here(crepe::LogLevel::DEBUG, "%s: " str, "")
-#define dbg_trace() _crepe_logf_here(crepe::LogLevel::TRACE, "%s", "")
-// NOLINTEND
-
-#endif
-
-namespace crepe {
-
-enum LogLevel {
- TRACE,
- DEBUG,
- INFO,
- WARNING,
- ERROR,
-};
-
-void logf(const char * fmt, ...);
-void logf(enum LogLevel level, const char * fmt, ...);
-
-} // namespace crepe
diff --git a/src/example/log.cpp b/src/example/log.cpp
index db8aa48..13d592b 100644
--- a/src/example/log.cpp
+++ b/src/example/log.cpp
@@ -4,7 +4,7 @@
*/
#include <crepe/api/Config.h>
-#include <crepe/util/log.h>
+#include <crepe/util/Log.h>
using namespace crepe;
@@ -12,17 +12,18 @@ using namespace crepe;
int _ = []() {
// make sure all log messages get printed
auto & cfg = Config::get_instance();
- cfg.log.level = LogLevel::TRACE;
+ cfg.log.level = Log::Level::TRACE;
return 0; // satisfy compiler
}();
int main() {
dbg_trace();
- dbg_logf("test printf parameters: %d", 3);
- logf(LogLevel::INFO, "info message");
- logf(LogLevel::WARNING, "warning");
- logf(LogLevel::ERROR, "error");
+ dbg_log("debug message");
+ Log::logf("info message with variable: {}", 3);
+ Log::logf(Log::Level::WARNING, "warning");
+ Log::logf(Log::Level::ERROR, "error");
+
return 0;
}