默认udp日志端口

This commit is contained in:
陈国伟 2021-11-05 09:46:10 +08:00
parent 22fdf2ac8e
commit 3123c29c4d
5 changed files with 38 additions and 66 deletions

View File

@ -1,9 +0,0 @@
<Application x:Class="FastGithub.UI.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:FastGithub.UI"
StartupUri="MainWindow.xaml">
<Application.Resources>
</Application.Resources>
</Application>

View File

@ -11,6 +11,7 @@
<ApplicationManifest>app.manifest</ApplicationManifest> <ApplicationManifest>app.manifest</ApplicationManifest>
<PackageLicenseExpression>MIT</PackageLicenseExpression> <PackageLicenseExpression>MIT</PackageLicenseExpression>
<AutoGenerateBindingRedirects>False</AutoGenerateBindingRedirects> <AutoGenerateBindingRedirects>False</AutoGenerateBindingRedirects>
<StartupObject></StartupObject>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
@ -18,6 +19,14 @@
<Resource Include="Resource\*.*" /> <Resource Include="Resource\*.*" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Compile Remove="App.xaml.cs" />
</ItemGroup>
<ItemGroup>
<Page Remove="App.xaml" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<Reference Include="System.Net.Http" /> <Reference Include="System.Net.Http" />
</ItemGroup> </ItemGroup>

View File

@ -8,18 +8,24 @@ using System.Windows;
namespace FastGithub.UI namespace FastGithub.UI
{ {
/// <summary> class Program
/// App.xaml 的交互逻辑
/// </summary>
public partial class App : Application
{ {
private readonly Mutex globalMutex; [STAThread]
private readonly bool isFirstInstance; static void Main(string[] args)
public App()
{ {
this.globalMutex = new Mutex(true, "Global\\FastGithub.UI", out this.isFirstInstance);
AppDomain.CurrentDomain.AssemblyResolve += OnAssemblyResolve; AppDomain.CurrentDomain.AssemblyResolve += OnAssemblyResolve;
using var mutex = new Mutex(true, "Global\\FastGithub.UI", out var isFirstInstance);
if (isFirstInstance == false)
{
return;
}
StartFastGithub();
SetWebBrowserVersion(9000);
var app = new Application();
app.StartupUri = new Uri("MainWindow.xaml", UriKind.Relative);
app.Run();
} }
/// <summary> /// <summary>
@ -36,33 +42,12 @@ namespace FastGithub.UI
return default; return default;
} }
var stream = GetResourceStream(new Uri($"Resource/{name}.dll", UriKind.Relative)).Stream; var stream = Application.GetResourceStream(new Uri($"Resource/{name}.dll", UriKind.Relative)).Stream;
var buffer = new byte[stream.Length]; var buffer = new byte[stream.Length];
stream.Read(buffer, 0, buffer.Length); stream.Read(buffer, 0, buffer.Length);
return Assembly.Load(buffer); return Assembly.Load(buffer);
} }
/// <summary>
/// 程序启动
/// </summary>
/// <param name="e"></param>
protected override void OnStartup(StartupEventArgs e)
{
if (this.isFirstInstance == false)
{
this.Shutdown();
}
else
{
StartFastGithub();
SetWebBrowserVersion(9000);
}
base.OnStartup(e);
}
/// <summary> /// <summary>
/// 设置浏览器版本 /// 设置浏览器版本
/// </summary> /// </summary>
@ -95,15 +80,5 @@ namespace FastGithub.UI
}; };
Process.Start(startInfo); Process.Start(startInfo);
} }
/// <summary>
/// 程序退出
/// </summary>
/// <param name="e"></param>
protected override void OnExit(ExitEventArgs e)
{
this.globalMutex.Dispose();
base.OnExit(e);
}
} }
} }

View File

@ -18,7 +18,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Serilog.AspNetCore" Version="4.1.0" /> <PackageReference Include="Serilog.Extensions.Hosting" Version="4.1.2" />
<PackageReference Include="Serilog.Sinks.Console" Version="4.0.0" /> <PackageReference Include="Serilog.Sinks.Console" Version="4.0.0" />
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" /> <PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
<PackageReference Include="Serilog.Settings.Configuration" Version="3.2.0" /> <PackageReference Include="Serilog.Settings.Configuration" Version="3.2.0" />

View File

@ -46,6 +46,18 @@ namespace FastGithub
} }
} }
}) })
.UseSerilog((hosting, logger) =>
{
var template = "{Timestamp:O} [{Level:u3}]{NewLine}{SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}{NewLine}";
logger
.ReadFrom.Configuration(hosting.Configuration)
.Enrich.FromLogContext()
.WriteTo.Console(outputTemplate: template)
.WriteTo.File(Path.Combine("logs", @"log.txt"), rollingInterval: RollingInterval.Day, outputTemplate: template);
var udpLoggerPort = hosting.Configuration.GetValue(nameof(AppOptions.UdpLoggerPort), 38457);
logger.WriteTo.UDPSink(IPAddress.Loopback, udpLoggerPort);
})
.ConfigureWebHostDefaults(webBuilder => .ConfigureWebHostDefaults(webBuilder =>
{ {
webBuilder.UseStartup<Startup>(); webBuilder.UseStartup<Startup>();
@ -65,21 +77,6 @@ namespace FastGithub
kestrel.ListenHttpProxy(); kestrel.ListenHttpProxy();
} }
}); });
webBuilder.UseSerilog((hosting, logger) =>
{
var template = "{Timestamp:O} [{Level:u3}]{NewLine}{SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}{NewLine}";
logger
.ReadFrom.Configuration(hosting.Configuration)
.Enrich.FromLogContext()
.WriteTo.Console(outputTemplate: template)
.WriteTo.File(Path.Combine("logs", @"log.txt"), rollingInterval: RollingInterval.Day, outputTemplate: template);
var udpLoggerPort = hosting.Configuration.GetValue(nameof(AppOptions.UdpLoggerPort), 0);
if (udpLoggerPort > 0)
{
logger.WriteTo.UDPSink(IPAddress.Loopback, udpLoggerPort);
}
});
}); });
} }
} }