Formatting
publish / publish (push) Successful in 11m55s

This commit is contained in:
khodowany
2026-09-14 23:54:30 -05:00
parent b9d30fb975
commit 097cb61d2d
33 changed files with 950 additions and 302 deletions
+22 -13
View File
@@ -7,6 +7,7 @@
#include <utility>
#include <modulus/types.hpp>
namespace {
auto is_valid_log_level(modulus::log_level level) noexcept -> std::bool_t {
@@ -19,13 +20,13 @@ auto should_log(modulus::log_level record_level, modulus::log_level configured_l
return configured_level != modulus::log_level::OFF && static_cast<std::int32_t>(record_level) >= static_cast<std::int32_t>(configured_level);
}
auto format_log_record(std::ostream& stream, const modulus::log_record& record) -> void {
auto format_log_record(std::ostream &stream, const modulus::log_record &record) -> void {
assert(is_valid_log_level(record.level));
assert(record.location.file_name() != nullptr);
stream << '[' << modulus::to_string(record.level) << "] " << record.message << " (" << record.location.file_name() << ':' << record.location.line() << ")\n";
}
auto stderr_sink(const modulus::log_record& record) -> void {
auto stderr_sink(const modulus::log_record &record) -> void {
assert(is_valid_log_level(record.level));
assert(record.location.file_name() != nullptr);
static auto mutex = std::mutex{};
@@ -38,18 +39,26 @@ auto stderr_sink(const modulus::log_record& record) -> void {
auto modulus::to_string(modulus::log_level level) noexcept -> std::string_view {
assert(is_valid_log_level(level));
switch (level) {
case modulus::log_level::TRACE: return "trace";
case modulus::log_level::DEBUG: return "debug";
case modulus::log_level::INFO: return "info";
case modulus::log_level::WARN: return "warn";
case modulus::log_level::ERROR: return "error";
case modulus::log_level::CRITICAL: return "critical";
case modulus::log_level::OFF: return "off";
case modulus::log_level::TRACE:
return "trace";
case modulus::log_level::DEBUG:
return "debug";
case modulus::log_level::INFO:
return "info";
case modulus::log_level::WARN:
return "warn";
case modulus::log_level::ERROR:
return "error";
case modulus::log_level::CRITICAL:
return "critical";
case modulus::log_level::OFF:
return "off";
}
return "unknown";
}
modulus::logger::logger() : sink_(stderr_sink) {}
modulus::logger::logger()
: sink_(stderr_sink) {}
auto modulus::logger::set_level(modulus::log_level level) -> void {
assert(is_valid_log_level(level));
@@ -69,7 +78,7 @@ auto modulus::logger::enabled(modulus::log_level level) const -> std::bool_t {
return should_log(level, level_) && static_cast<std::bool_t>(sink_);
}
auto modulus::logger::set_sink(std::function<void(const modulus::log_record&)> sink) -> void {
auto modulus::logger::set_sink(std::function<void(const modulus::log_record &)> sink) -> void {
auto lock = std::lock_guard{mutex_};
sink_ = std::move(sink);
}
@@ -78,7 +87,7 @@ auto modulus::logger::write(modulus::log_record record) const -> void {
assert(is_valid_log_level(record.level));
assert(record.location.file_name() != nullptr);
assert(record.location.function_name() != nullptr);
auto sink = std::function<void(const modulus::log_record&)>{};
auto sink = std::function<void(const modulus::log_record &)>{};
{
auto lock = std::lock_guard{mutex_};
if (!should_log(record.level, level_) || !sink_) {
@@ -102,7 +111,7 @@ auto modulus::logger::log(modulus::log_level level, std::string message, modulus
});
}
auto modulus::default_logger() -> modulus::logger& {
auto modulus::default_logger() -> modulus::logger & {
static auto instance = modulus::logger{};
return instance;
}