Files
Sergio Matias Urquin 83fc1878c4 Add project files.
2025-04-29 18:42:29 -06:00

90 lines
3.6 KiB
C#

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