using System;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using WireMock.Admin.Requests;
using WireMock.Logging;
namespace WireMock.Net
{
public class WireMockLogger : IWireMockLogger
{
private readonly JsonSerializerOptions options = new JsonSerializerOptions
{
WriteIndented = true
};
private readonly ILogger _logger;
public WireMockLogger(ILogger logger)
{
_logger = logger;
}
///
public void Debug(string formatString, params object[] args)
{
_logger.LogDebug(formatString, args);
}
///
public void Info(string formatString, params object[] args)
{
_logger.LogInformation(formatString, args);
}
///
public void Warn(string formatString, params object[] args)
{
_logger.LogWarning(formatString, args);
}
///
public void Error(string formatString, params object[] args)
{
_logger.LogError(formatString, args);
}
///
public void Error(string formatString, Exception exception)
{
_logger.LogError(formatString, exception);
}
///
public void DebugRequestResponse(LogEntryModel logEntryModel, bool isAdminRequest)
{
string message = JsonSerializer.Serialize(logEntryModel, options);
_logger.LogDebug("Admin[{IsAdmin}] {Message}", isAdminRequest, message);
}
}
}