diff --git a/src/Tgstation.Server.Host.Service/ServerService.cs b/src/Tgstation.Server.Host.Service/ServerService.cs index d1adffdaf1..775946d42c 100644 --- a/src/Tgstation.Server.Host.Service/ServerService.cs +++ b/src/Tgstation.Server.Host.Service/ServerService.cs @@ -32,6 +32,11 @@ namespace Tgstation.Server.Host.Service /// readonly LogLevel minimumLogLevel; + /// + /// The used by the service. + /// + ILoggerFactory loggerFactory; + /// /// The that represents the running service. /// @@ -57,6 +62,7 @@ namespace Tgstation.Server.Host.Service /// protected override void Dispose(bool disposing) { + loggerFactory?.Dispose(); cancellationTokenSource?.Dispose(); base.Dispose(disposing); } @@ -64,13 +70,16 @@ namespace Tgstation.Server.Host.Service /// protected override void OnStart(string[] args) { - var loggerFactory = LoggerFactory.Create(builder => builder.AddEventLog(new EventLogSettings + if (loggerFactory == null) { - LogName = EventLog.Log, - MachineName = EventLog.MachineName, - SourceName = EventLog.Source, - Filter = (message, logLevel) => logLevel >= minimumLogLevel, - })); + loggerFactory = LoggerFactory.Create(builder => builder.AddEventLog(new EventLogSettings + { + LogName = EventLog.Log, + MachineName = EventLog.MachineName, + SourceName = EventLog.Source, + Filter = (message, logLevel) => logLevel >= minimumLogLevel, + })); + } var watchdog = watchdogFactory.CreateWatchdog(loggerFactory);