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
@@ -2,8 +2,8 @@ using Newtonsoft.Json;
using System; using System;
using WireMock.Admin.Requests; using WireMock.Admin.Requests;
namespace WireMock.Logging namespace WireMock.Logging;
{
/// <summary> /// <summary>
/// WireMockConsoleLogger which logs to Console /// WireMockConsoleLogger which logs to Console
/// </summary> /// </summary>
@@ -71,4 +71,3 @@ namespace WireMock.Logging
return $"{DateTime.UtcNow} [{level}] : {message}"; return $"{DateTime.UtcNow} [{level}] : {message}";
} }
} }
}
@@ -1,8 +1,8 @@
using System; using System;
using WireMock.Admin.Requests; using WireMock.Admin.Requests;
namespace WireMock.Logging namespace WireMock.Logging;
{
/// <summary> /// <summary>
/// WireMockNullLogger which does not log. /// WireMockNullLogger which does not log.
/// </summary> /// </summary>
@@ -45,4 +45,3 @@ namespace WireMock.Logging
// Log nothing // Log nothing
} }
} }
}
@@ -62,13 +62,23 @@ public static class WireMockServerSettingsParser
settings.CorsPolicyOptions = parser.GetEnumValue(nameof(WireMockServerSettings.CorsPolicyOptions), CorsPolicyOptions.None); settings.CorsPolicyOptions = parser.GetEnumValue(nameof(WireMockServerSettings.CorsPolicyOptions), CorsPolicyOptions.None);
#endif #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) if (logger != null)
{ {
settings.Logger = logger; settings.Logger = logger;
} }
else if (parser.GetStringValue("WireMockLogger") == "WireMockConsoleLogger") break;
{
settings.Logger = new WireMockConsoleLogger();
} }
if (parser.Contains(nameof(WireMockServerSettings.Port))) if (parser.Contains(nameof(WireMockServerSettings.Port)))
-5
View File
@@ -21,10 +21,6 @@
<PublicSign Condition=" '$(OS)' != 'Windows_NT' ">true</PublicSign> <PublicSign Condition=" '$(OS)' != 'Windows_NT' ">true</PublicSign>
</PropertyGroup> </PropertyGroup>
<!--<ItemGroup>
<None Include="WireMock.Net-Logo.png" Pack="true" PackagePath="../../"/>
</ItemGroup>-->
<!-- https://github.com/aspnet/RoslynCodeDomProvider/issues/51 --> <!-- https://github.com/aspnet/RoslynCodeDomProvider/issues/51 -->
<!-- This is needed else we cannot build net452 in Azure DevOps Pipeline --> <!-- This is needed else we cannot build net452 in Azure DevOps Pipeline -->
<!--<Target Name="CheckIfShouldKillVBCSCompiler" />--> <!--<Target Name="CheckIfShouldKillVBCSCompiler" />-->
@@ -145,7 +141,6 @@
</ItemGroup> </ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netcoreapp3.1' "> <ItemGroup Condition=" '$(TargetFramework)' == 'netcoreapp3.1' ">
<!--<PackageReference Include="System.Diagnostics.CodeAnalysis" Version="4.3.0" />-->
<PackageReference Include="Nullable" Version="1.3.0" /> <PackageReference Include="Nullable" Version="1.3.0" />
</ItemGroup> </ItemGroup>
+9 -10
View File
@@ -5,12 +5,12 @@ using WireMock.Logging;
using WireMock.Net.StandAlone; using WireMock.Net.StandAlone;
using WireMock.Server; using WireMock.Server;
namespace WireMock.Net namespace WireMock.Net;
{
public class Program public class Program
{ {
private static readonly int SleepTime = 30000; 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.SetMinimumLevel(LogLevel.Debug);
o.AddSimpleConsole(options => o.AddSimpleConsole(options =>
@@ -20,13 +20,13 @@ namespace WireMock.Net
options.TimestampFormat = "yyyy-MM-ddTHH:mm:ss "; options.TimestampFormat = "yyyy-MM-ddTHH:mm:ss ";
}); });
}).CreateLogger("WireMock.Net"); }).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) static async Task Main(string[] args)
{ {
if (!StandAloneApp.TryStart(args, out Server, Logger)) if (!StandAloneApp.TryStart(args, out _server!, Logger))
{ {
return; return;
} }
@@ -45,16 +45,15 @@ namespace WireMock.Net
while (true) while (true)
{ {
Logger.Info("Server running : {IsStarted}", Server.IsStarted); Logger.Info("Server running : {0}", _server.IsStarted);
await Task.Delay(SleepTime).ConfigureAwait(false); await Task.Delay(SleepTime).ConfigureAwait(false);
} }
} }
private static void Stop(string why) private static void Stop(string why)
{ {
Logger.Info("Server stopping because '{why}'", why); Logger.Info("Server stopping because '{0}'", why);
Server.Stop(); _server.Stop();
Logger.Info("Server stopped"); Logger.Info("Server stopped");
} }
} }
}
@@ -2,7 +2,7 @@
"profiles": { "profiles": {
"dotnet-WireMock.Net": { "dotnet-WireMock.Net": {
"commandName": "Project", "commandName": "Project",
"commandLineArgs": "" "commandLineArgs": "--WireMockLogger s"
} }
} }
} }
+4 -5
View File
@@ -4,11 +4,11 @@ using Microsoft.Extensions.Logging;
using WireMock.Admin.Requests; using WireMock.Admin.Requests;
using WireMock.Logging; using WireMock.Logging;
namespace WireMock.Net namespace WireMock.Net;
{
public class WireMockLogger : IWireMockLogger public class WireMockLogger : IWireMockLogger
{ {
private readonly JsonSerializerOptions options = new JsonSerializerOptions private readonly JsonSerializerOptions _options = new()
{ {
WriteIndented = true WriteIndented = true
}; };
@@ -53,9 +53,8 @@ namespace WireMock.Net
/// <see cref="IWireMockLogger.DebugRequestResponse"/> /// <see cref="IWireMockLogger.DebugRequestResponse"/>
public void DebugRequestResponse(LogEntryModel logEntryModel, bool isAdminRequest) 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); _logger.LogDebug("Admin[{IsAdmin}] {Message}", isAdminRequest, message);
} }
} }
}