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); } } }