diff --git a/src/Tgstation.Server.Host/Controllers/BridgeController.cs b/src/Tgstation.Server.Host/Controllers/BridgeController.cs index 4b1a1fac3e..f7711a7833 100644 --- a/src/Tgstation.Server.Host/Controllers/BridgeController.cs +++ b/src/Tgstation.Server.Host/Controllers/BridgeController.cs @@ -36,7 +36,12 @@ namespace Tgstation.Server.Host.Controllers /// /// If the content of bridge requests and responses should be logged. /// - internal static bool LogContent { get; set; } + static bool LogContent => logContentDisableCounter == 0; + + /// + /// Counter which, if not zero, indicates content logging should be disabled. + /// + static uint logContentDisableCounter; /// /// Static counter for the number of requests processed. @@ -54,12 +59,14 @@ namespace Tgstation.Server.Host.Controllers readonly ILogger logger; /// - /// Initializes static members of the class. + /// Temporarily disable content logging. Must be followed up with a call to . /// - static BridgeController() - { - LogContent = true; - } + internal static void TemporarilyDisableContentLogging() => Interlocked.Increment(ref logContentDisableCounter); + + /// + /// Reenable content logging. Must be preceeded with a call to . + /// + internal static void ReenableContentLogging() => Interlocked.Decrement(ref logContentDisableCounter); /// /// Initializes a new instance of the class. diff --git a/tests/Tgstation.Server.Tests/Live/Instance/WatchdogTest.cs b/tests/Tgstation.Server.Tests/Live/Instance/WatchdogTest.cs index ceb8e80fe7..4d5e1685a5 100644 --- a/tests/Tgstation.Server.Tests/Live/Instance/WatchdogTest.cs +++ b/tests/Tgstation.Server.Tests/Live/Instance/WatchdogTest.cs @@ -893,7 +893,7 @@ namespace Tgstation.Server.Tests.Live.Instance { // first check the bridge limits var bridgeTestsTcs = new TaskCompletionSource(); - BridgeController.LogContent = false; + BridgeController.TemporarilyDisableContentLogging(); using (var loggerFactory = LoggerFactory.Create(builder => { builder.AddConsole(); @@ -914,7 +914,7 @@ namespace Tgstation.Server.Tests.Live.Instance await bridgeTestsTcs.Task.WaitAsync(cancellationToken); } - BridgeController.LogContent = true; + BridgeController.ReenableContentLogging(); // Time for DD to revert the bridge access identifier change await Task.Delay(TimeSpan.FromSeconds(1), cancellationToken);