namespace Core.Blueprint.Logging { /// /// Provides logging functionalities using Serilog. /// public class LoggerProvider : ILoggerProvider { private readonly Serilog.ILogger logger; /// /// Initializes a new instance of the class. /// /// The Serilog logger instance. public LoggerProvider(Serilog.ILogger logger) { this.logger = logger; } /// /// Logs an informational message for a specific service. /// /// The name of the service. /// Additional arguments to include in the log. public void LogInformation(string service, params object[] args) { logger.Information("Starting operation in {service} service", service, args); } /// /// Logs a message indicating the start of an operation in a specific service. /// /// The name of the service. /// Additional parameters associated with the operation. public void LogOperationStarted(string service, params object[] args) { logger.Information("Starting operation in {Service} service with parameters: {@Args}", service, args); } /// /// Logs a message indicating the completion of an operation in a specific service. /// /// The name of the service. /// Additional parameters associated with the operation. public void LogOperationFinished(string service, params object[] args) { logger.Information("Finishing operation in {Service} service with parameters: {@Args}", service, args); } /// /// Logs a general informational message. /// /// The message to log. public void LogInformation(string message) { logger.Information(message); } /// /// Logs a warning message with additional context. /// /// The warning message to log. /// Additional arguments to include in the log. public void LogWarning(string message, params object[] args) { logger.Warning(message, args); } /// /// Logs an error that occurred in a specific service. /// /// The name of the service. /// Additional details about the error. public void LogError(string service, params object[] args) { logger.Error("An error occurred in `{service}` Exception: {@Args}", service, args); } /// /// Logs a critical error with an exception, message, and additional context. /// /// The exception associated with the critical error. /// The critical error message. /// Additional arguments to include in the log. public void LogCritical(Exception exception, string message, params object[] args) { logger.Fatal(exception, message, args); } } }