Add ILogger to GSIServer
This commit is contained in:
parent
b4b6f1dbb5
commit
ab0e851996
@ -22,6 +22,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
15
GSIServer.cs
15
GSIServer.cs
@ -1,5 +1,7 @@
|
|||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
// ReSharper disable LocalizableElement
|
// ReSharper disable LocalizableElement
|
||||||
|
|
||||||
namespace CS2GSI;
|
namespace CS2GSI;
|
||||||
@ -11,12 +13,16 @@ internal class GSIServer
|
|||||||
internal event OnMessageEventHandler? OnMessage;
|
internal event OnMessageEventHandler? OnMessage;
|
||||||
private bool _keepRunning = true;
|
private bool _keepRunning = true;
|
||||||
internal bool IsRunning { get; private set; }
|
internal bool IsRunning { get; private set; }
|
||||||
|
private ILogger? logger;
|
||||||
|
|
||||||
internal GSIServer(int port)
|
internal GSIServer(int port, ILogger? logger = null)
|
||||||
{
|
{
|
||||||
|
this.logger = logger;
|
||||||
|
string prefix = $"http://127.0.0.1:{port}/";
|
||||||
HttpListener = new HttpListener();
|
HttpListener = new HttpListener();
|
||||||
HttpListener.Prefixes.Add($"http://127.0.0.1:{port}/");
|
HttpListener.Prefixes.Add(prefix);
|
||||||
HttpListener.Start();
|
HttpListener.Start();
|
||||||
|
this.logger?.Log(LogLevel.Information, $"Listening on {prefix}");
|
||||||
|
|
||||||
Thread connectionListener = new (HandleConnection);
|
Thread connectionListener = new (HandleConnection);
|
||||||
connectionListener.Start();
|
connectionListener.Start();
|
||||||
@ -31,7 +37,7 @@ internal class GSIServer
|
|||||||
HttpListenerContext context = await HttpListener.GetContextAsync();
|
HttpListenerContext context = await HttpListener.GetContextAsync();
|
||||||
HttpListenerRequest request = context.Request;
|
HttpListenerRequest request = context.Request;
|
||||||
|
|
||||||
Console.WriteLine($"[{request.HttpMethod}] {request.Url} - {request.UserAgent}");
|
this.logger?.Log(LogLevel.Information, $"[{request.HttpMethod}] {request.Url} - {request.UserAgent}");
|
||||||
|
|
||||||
HttpResponseMessage responseMessage = new (HttpStatusCode.Accepted);
|
HttpResponseMessage responseMessage = new (HttpStatusCode.Accepted);
|
||||||
context.Response.OutputStream.Write(Encoding.UTF8.GetBytes(responseMessage.ToString()));
|
context.Response.OutputStream.Write(Encoding.UTF8.GetBytes(responseMessage.ToString()));
|
||||||
@ -39,13 +45,16 @@ internal class GSIServer
|
|||||||
StreamReader reader = new (request.InputStream, request.ContentEncoding);
|
StreamReader reader = new (request.InputStream, request.ContentEncoding);
|
||||||
string content = await reader.ReadToEndAsync();
|
string content = await reader.ReadToEndAsync();
|
||||||
OnMessage?.Invoke(content);
|
OnMessage?.Invoke(content);
|
||||||
|
this.logger?.Log(LogLevel.Debug, content);
|
||||||
}
|
}
|
||||||
HttpListener.Close();
|
HttpListener.Close();
|
||||||
IsRunning = false;
|
IsRunning = false;
|
||||||
|
this.logger?.Log(LogLevel.Information, "Stopped GSIServer.");
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void Dispose()
|
internal void Dispose()
|
||||||
{
|
{
|
||||||
|
this.logger?.Log(LogLevel.Information, "Stopping GSIServer.");
|
||||||
_keepRunning = false;
|
_keepRunning = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user