Unit testing ‐ Logging - Habilya/LearningCourseNotes GitHub Wiki
namespace WatcherFileSystemGeneric.Logging;
public interface ILoggerAdapter<TType>
{
void LogError(Exception? exception, string? message, params object?[] args);
void LogInformation(string? message, params object?[] args);
void LogWarning(string? message, params object?[] args);
}
using Microsoft.Extensions.Logging;
namespace WatcherFileSystemGeneric.Logging;
public class LoggerAdapter<TType> : ILoggerAdapter<TType>
{
private readonly ILogger<TType> _logger;
public LoggerAdapter(ILogger<TType> logger)
{
_logger = logger;
}
public void LogInformation(string? message, params object?[] args)
{
_logger.LogInformation(message, args);
}
public void LogWarning(string? message, params object?[] args)
{
_logger.LogWarning(message, args);
}
public void LogError(Exception? exception, string? message, params object?[] args)
{
_logger.LogError(exception, message, args);
}
}
as dependency in container
services.AddTransient(typeof(ILoggerAdapter<>), typeof(LoggerAdapter<>));
as dependency in dependant classes
protected readonly ILoggerAdapter<GenericWatcherProcess> _logger;