Add WireMockNullLogger as valid commandline logger option (#845)

* Add WireMockNullLogger as valid commandline logger option

* .
This commit is contained in:
Stef Heyenrath
2022-11-06 13:25:26 +01:00
committed by GitHub
parent 49b29d74dc
commit 7fd1d30d0e
7 changed files with 190 additions and 189 deletions

View File

@@ -2,8 +2,8 @@ using Newtonsoft.Json;
using System;
using WireMock.Admin.Requests;
namespace WireMock.Logging
{
namespace WireMock.Logging;
/// <summary>
/// WireMockConsoleLogger which logs to Console
/// </summary>
@@ -71,4 +71,3 @@ namespace WireMock.Logging
return $"{DateTime.UtcNow} [{level}] : {message}";
}
}
}

View File

@@ -1,8 +1,8 @@
using System;
using System;
using WireMock.Admin.Requests;
namespace WireMock.Logging
{
namespace WireMock.Logging;
/// <summary>
/// WireMockNullLogger which does not log.
/// </summary>
@@ -45,4 +45,3 @@ namespace WireMock.Logging
// Log nothing
}
}
}

View File

@@ -62,13 +62,23 @@ public static class WireMockServerSettingsParser
settings.CorsPolicyOptions = parser.GetEnumValue(nameof(WireMockServerSettings.CorsPolicyOptions), CorsPolicyOptions.None);
#endif
var loggerType = parser.GetStringValue("WireMockLogger");
switch (loggerType)
{
case nameof(WireMockConsoleLogger):
settings.Logger = new WireMockConsoleLogger();
break;
case nameof(WireMockNullLogger):
settings.Logger = new WireMockNullLogger();
break;
default:
if (logger != null)
{
settings.Logger = logger;
}
else if (parser.GetStringValue("WireMockLogger") == "WireMockConsoleLogger")
{
settings.Logger = new WireMockConsoleLogger();
break;
}
if (parser.Contains(nameof(WireMockServerSettings.Port)))

View File

@@ -21,10 +21,6 @@
<PublicSign Condition=" '$(OS)' != 'Windows_NT' ">true</PublicSign>
</PropertyGroup>
<!--<ItemGroup>
<None Include="WireMock.Net-Logo.png" Pack="true" PackagePath="../../"/>
</ItemGroup>-->
<!-- https://github.com/aspnet/RoslynCodeDomProvider/issues/51 -->
<!-- This is needed else we cannot build net452 in Azure DevOps Pipeline -->
<!--<Target Name="CheckIfShouldKillVBCSCompiler" />-->
@@ -145,7 +141,6 @@
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netcoreapp3.1' ">
<!--<PackageReference Include="System.Diagnostics.CodeAnalysis" Version="4.3.0" />-->
<PackageReference Include="Nullable" Version="1.3.0" />
</ItemGroup>

View File

@@ -5,12 +5,12 @@ using WireMock.Logging;
using WireMock.Net.StandAlone;
using WireMock.Server;
namespace WireMock.Net
{
namespace WireMock.Net;
public class Program
{
private static readonly int SleepTime = 30000;
private static readonly ILogger xLogger = LoggerFactory.Create(o =>
private static readonly ILogger XLogger = LoggerFactory.Create(o =>
{
o.SetMinimumLevel(LogLevel.Debug);
o.AddSimpleConsole(options =>
@@ -20,13 +20,13 @@ namespace WireMock.Net
options.TimestampFormat = "yyyy-MM-ddTHH:mm:ss ";
});
}).CreateLogger("WireMock.Net");
private static readonly IWireMockLogger Logger = new WireMockLogger(xLogger);
private static readonly IWireMockLogger Logger = new WireMockLogger(XLogger);
private static WireMockServer Server;
private static WireMockServer _server = null!;
static async Task Main(string[] args)
{
if (!StandAloneApp.TryStart(args, out Server, Logger))
if (!StandAloneApp.TryStart(args, out _server!, Logger))
{
return;
}
@@ -45,16 +45,15 @@ namespace WireMock.Net
while (true)
{
Logger.Info("Server running : {IsStarted}", Server.IsStarted);
Logger.Info("Server running : {0}", _server.IsStarted);
await Task.Delay(SleepTime).ConfigureAwait(false);
}
}
private static void Stop(string why)
{
Logger.Info("Server stopping because '{why}'", why);
Server.Stop();
Logger.Info("Server stopping because '{0}'", why);
_server.Stop();
Logger.Info("Server stopped");
}
}
}

View File

@@ -2,7 +2,7 @@
"profiles": {
"dotnet-WireMock.Net": {
"commandName": "Project",
"commandLineArgs": ""
"commandLineArgs": "--WireMockLogger s"
}
}
}

View File

@@ -4,11 +4,11 @@ using Microsoft.Extensions.Logging;
using WireMock.Admin.Requests;
using WireMock.Logging;
namespace WireMock.Net
{
namespace WireMock.Net;
public class WireMockLogger : IWireMockLogger
{
private readonly JsonSerializerOptions options = new JsonSerializerOptions
private readonly JsonSerializerOptions _options = new()
{
WriteIndented = true
};
@@ -53,9 +53,8 @@ namespace WireMock.Net
/// <see cref="IWireMockLogger.DebugRequestResponse"/>
public void DebugRequestResponse(LogEntryModel logEntryModel, bool isAdminRequest)
{
string message = JsonSerializer.Serialize(logEntryModel, options);
string message = JsonSerializer.Serialize(logEntryModel, _options);
_logger.LogDebug("Admin[{IsAdmin}] {Message}", isAdminRequest, message);
}
}
}