DotNetDupe 4.0.6
C++17/20 Implementation of the .NET Base Class Library (BCL)
Loading...
Searching...
No Matches
Logger.h
Go to the documentation of this file.
1#pragma once
3
4namespace DotNetDupe {
5 namespace Extensions {
6 namespace Logging {
7
12 template <typename T>
13 class Logger : public ILoggerOf<T> {
14 private:
16
17 public:
20 Logger(const DotNetDupe::System::SmartPointer<ILogger>& pLogger) : m_pLogger(pLogger) {}
21
23 ~Logger() override = default;
24
28 void Log(LogLevel logLevel, const DotNetDupe::System::String& message) override {
29 if (m_pLogger) {
30 m_pLogger->Log(logLevel, message);
31 }
32 }
33
38 void Log(LogLevel logLevel, const DotNetDupe::System::String& message,
40 if (m_pLogger) {
41 m_pLogger->Log(logLevel, message, properties);
42 }
43 }
44
48 bool IsEnabled(LogLevel logLevel) const override {
49 return m_pLogger ? m_pLogger->IsEnabled(logLevel) : false;
50 }
51 };
52
53 }
54 }
55}
A generic interface for logging where the category name is derived from the specified type name.
Definition ILogger.h:63
~Logger() override=default
Virtual destructor for polymorphic cleanup.
void Log(LogLevel logLevel, const DotNetDupe::System::String &message) override
Writes a log entry at the specified log level.
Definition Logger.h:28
bool IsEnabled(LogLevel logLevel) const override
Checks if the given logLevel is enabled.
Definition Logger.h:48
void Log(LogLevel logLevel, const DotNetDupe::System::String &message, const DotNetDupe::System::Collections::Generic::Dictionary< DotNetDupe::System::String, DotNetDupe::System::String > &properties) override
Writes a structured log entry with key-value properties.
Definition Logger.h:38
Logger(const DotNetDupe::System::SmartPointer< ILogger > &pLogger)
Initializes a new instance of Logger<T> wrapping the given ILogger.
Definition Logger.h:20
Represents a collection of keys and values.
Definition Dictionary.h:66
A unified smart pointer that supports both unique and shared ownership semantics.
Represents text as a sequence of UTF-8 code units with culture-invariant operations.
Definition String.h:74
LogLevel
Defines logging severity levels.
Definition ILogger.h:15