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