feat: add Windows Service integration via --service flag
Adds Microsoft.Extensions.Hosting.WindowsServices package and a --service CLI flag to Program.cs that logs service mode activation, enabling future Windows Service lifecycle management.
This commit is contained in:
@@ -15,6 +15,9 @@
|
|||||||
<PackageVersion Include="NATS.NKeys" Version="1.0.0-preview.3" />
|
<PackageVersion Include="NATS.NKeys" Version="1.0.0-preview.3" />
|
||||||
<PackageVersion Include="BCrypt.Net-Next" Version="4.0.3" />
|
<PackageVersion Include="BCrypt.Net-Next" Version="4.0.3" />
|
||||||
|
|
||||||
|
<!-- Windows Service -->
|
||||||
|
<PackageVersion Include="Microsoft.Extensions.Hosting.WindowsServices" Version="10.0.0" />
|
||||||
|
|
||||||
<!-- Testing -->
|
<!-- Testing -->
|
||||||
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
|
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
|
||||||
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
|
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" />
|
||||||
<PackageReference Include="Serilog.Extensions.Hosting" />
|
<PackageReference Include="Serilog.Extensions.Hosting" />
|
||||||
<PackageReference Include="Serilog.Sinks.Console" />
|
<PackageReference Include="Serilog.Sinks.Console" />
|
||||||
<PackageReference Include="Serilog.Sinks.File" />
|
<PackageReference Include="Serilog.Sinks.File" />
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using Serilog;
|
|||||||
using Serilog.Sinks.SystemConsole.Themes;
|
using Serilog.Sinks.SystemConsole.Themes;
|
||||||
|
|
||||||
var options = new NatsOptions();
|
var options = new NatsOptions();
|
||||||
|
var windowsService = false;
|
||||||
|
|
||||||
// Parse ALL CLI flags into NatsOptions first
|
// Parse ALL CLI flags into NatsOptions first
|
||||||
for (int i = 0; i < args.Length; i++)
|
for (int i = 0; i < args.Length; i++)
|
||||||
@@ -81,6 +82,9 @@ for (int i = 0; i < args.Length; i++)
|
|||||||
case "--remote_syslog" when i + 1 < args.Length:
|
case "--remote_syslog" when i + 1 < args.Length:
|
||||||
options.RemoteSyslog = args[++i];
|
options.RemoteSyslog = args[++i];
|
||||||
break;
|
break;
|
||||||
|
case "--service":
|
||||||
|
windowsService = true;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,6 +137,11 @@ else if (options.Syslog)
|
|||||||
|
|
||||||
Log.Logger = logConfig.CreateLogger();
|
Log.Logger = logConfig.CreateLogger();
|
||||||
|
|
||||||
|
if (windowsService)
|
||||||
|
{
|
||||||
|
Log.Information("Windows Service mode requested");
|
||||||
|
}
|
||||||
|
|
||||||
using var loggerFactory = new Serilog.Extensions.Logging.SerilogLoggerFactory(Log.Logger);
|
using var loggerFactory = new Serilog.Extensions.Logging.SerilogLoggerFactory(Log.Logger);
|
||||||
using var server = new NatsServer(options, loggerFactory);
|
using var server = new NatsServer(options, loggerFactory);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user