Img2Num C++ (Internal Developer Docs) dev
API Documentation
Loading...
Searching...
No Matches
log.h
1#pragma once
2
3#include <spdlog/sinks/stdout_color_sinks.h>
4#include <spdlog/spdlog.h>
5
6namespace img2num::third_party_wrappers {
7
8// Lazily-created library logger.
9inline spdlog::logger& logger() {
10 static const auto instance = [] {
11 auto l = spdlog::stdout_color_mt("img2num");
12 // Sync runtime filtering with compile-time stripping
13 l->set_level(static_cast<spdlog::level::level_enum>(SPDLOG_ACTIVE_LEVEL));
14 return l;
15 }();
16 return *instance;
17}
18
19} // namespace img2num::third_party_wrappers
20
21// Library-scoped logging macros. Same compile-time stripping semantics as
22// SPDLOG_INFO etc. (SPDLOG_LOGGER_* checks SPDLOG_ACTIVE_LEVEL identically),
23// but routed through the img2num logger instead of spdlog's default logger.
24#define IMG2NUM_LOG_TRACE(...) \
25 SPDLOG_LOGGER_TRACE(&::img2num::third_party_wrappers::logger(), __VA_ARGS__)
26#define IMG2NUM_LOG_DEBUG(...) \
27 SPDLOG_LOGGER_DEBUG(&::img2num::third_party_wrappers::logger(), __VA_ARGS__)
28#define IMG2NUM_LOG_INFO(...) \
29 SPDLOG_LOGGER_INFO(&::img2num::third_party_wrappers::logger(), __VA_ARGS__)
30#define IMG2NUM_LOG_WARN(...) \
31 SPDLOG_LOGGER_WARN(&::img2num::third_party_wrappers::logger(), __VA_ARGS__)
32#define IMG2NUM_LOG_ERROR(...) \
33 SPDLOG_LOGGER_ERROR(&::img2num::third_party_wrappers::logger(), __VA_ARGS__)
34#define IMG2NUM_LOG_CRITICAL(...) \
35 SPDLOG_LOGGER_CRITICAL(&::img2num::third_party_wrappers::logger(), __VA_ARGS__)