90 lines
3.6 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|