MCPcopy Create free account
hub / github.com/ClickHouse/ai-sdk-cpp / Logger

Class Logger

include/ai/logger.h:18–60  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

16};
17
18class Logger {
19 public:
20 virtual ~Logger() = default;
21
22 // Core logging method
23 virtual void log(LogLevel level, std::string_view message) = 0;
24
25 // Convenience methods for each log level
26 template <typename... Args>
27 void debug(std::format_string<Args...> fmt, Args&&... args) {
28 if (is_enabled(LogLevel::kLogLevelDebug)) {
29 log(LogLevel::kLogLevelDebug,
30 std::format(fmt, std::forward<Args>(args)...));
31 }
32 }
33
34 template <typename... Args>
35 void info(std::format_string<Args...> fmt, Args&&... args) {
36 if (is_enabled(LogLevel::kLogLevelInfo)) {
37 log(LogLevel::kLogLevelInfo,
38 std::format(fmt, std::forward<Args>(args)...));
39 }
40 }
41
42 template <typename... Args>
43 void warn(std::format_string<Args...> fmt, Args&&... args) {
44 if (is_enabled(LogLevel::kLogLevelWarn)) {
45 log(LogLevel::kLogLevelWarn,
46 std::format(fmt, std::forward<Args>(args)...));
47 }
48 }
49
50 template <typename... Args>
51 void error(std::format_string<Args...> fmt, Args&&... args) {
52 if (is_enabled(LogLevel::kLogLevelError)) {
53 log(LogLevel::kLogLevelError,
54 std::format(fmt, std::forward<Args>(args)...));
55 }
56 }
57
58 // Check if a log level is enabled
59 virtual bool is_enabled(LogLevel level) const = 0;
60};
61
62// Null logger implementation - does nothing
63class NullLogger final : public Logger {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected