Defines common cross-platform macros, export decorators, and fundamental types.
Base object class for DotNetDupe mirroring .NET System.Object.
Provides reference-counted and weak pointer memory management primitives ensuring zero raw ownership.
High-performance UTF-8 / UTF-16 string manipulation class mirroring .NET System.String.
Represents a type used to configure the logging system and create instances of ILogger.
virtual void AddProvider(const DotNetDupe::System::SmartPointer< ILoggerProvider > &provider)=0
Adds an ILoggerProvider to the logging system.
virtual DotNetDupe::System::SmartPointer< ILogger > CreateLogger(const DotNetDupe::System::String &categoryName)=0
Creates a new ILogger instance for the specified category.
virtual ~ILoggerFactory()=default
Virtual destructor for polymorphic cleanup.
Represents a type used to perform logging.
virtual void Log(LogLevel logLevel, const DotNetDupe::System::String &message)=0
Writes a log entry at the specified log level.
virtual bool IsEnabled(LogLevel logLevel) const =0
Checks if the given logLevel is enabled.
virtual void Log(LogLevel logLevel, const DotNetDupe::System::String &message, const DotNetDupe::System::Collections::Generic::Dictionary< DotNetDupe::System::String, DotNetDupe::System::String > &properties)=0
Writes a structured log entry with key-value property metadata.
virtual ~ILogger()=default
Virtual destructor for polymorphic cleanup.
A generic interface for logging where the category name is derived from the specified type name.
virtual ~ILoggerOf()=default
Virtual destructor for polymorphic cleanup.
Represents a type that can create instances of ILogger.
virtual DotNetDupe::System::SmartPointer< ILogger > CreateLogger(const DotNetDupe::System::String &categoryName)=0
Creates a new ILogger instance for the specified category.
virtual ~ILoggerProvider()=default
Virtual destructor for polymorphic cleanup.
Represents a collection of keys and values.
Supports all classes in the DotNetDupe class hierarchy.
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.
LogLevel
Defines logging severity levels.
@ Warning
Logs that highlight an abnormal or unexpected event.
@ Critical
Logs that describe an unrecoverable application or system crash.
@ None
Not used for writing log messages. Specifies that a logging category should not write any messages.
@ Error
Logs that highlight when the current flow of execution is stopped due to a failure.
@ Debug
Logs that are used for interactive investigation during development.
@ Information
Logs that track the general flow of the application.
@ Trace
Logs that contain the most detailed messages.