diff --git a/HttpClientStudy.Core/Utils/StartupUtility.cs b/HttpClientStudy.Core/Utilities/StartupUtility.cs similarity index 98% rename from HttpClientStudy.Core/Utils/StartupUtility.cs rename to HttpClientStudy.Core/Utilities/StartupUtility.cs index 53c8269..7f59c29 100644 --- a/HttpClientStudy.Core/Utils/StartupUtility.cs +++ b/HttpClientStudy.Core/Utilities/StartupUtility.cs @@ -68,7 +68,6 @@ namespace HttpClientStudy.Core.Utils /// /// 关闭webapi项目 - /// (出现webapi项目启动命令行窗口) /// public static void ExitWebApiProject() { diff --git a/HttpClientStudy.UnitTest/HttpClientStudy.UnitTest.csproj b/HttpClientStudy.UnitTest/HttpClientStudy.UnitTest.csproj index 47091ea..0dbda1b 100644 --- a/HttpClientStudy.UnitTest/HttpClientStudy.UnitTest.csproj +++ b/HttpClientStudy.UnitTest/HttpClientStudy.UnitTest.csproj @@ -20,6 +20,12 @@ + + + + + + diff --git a/HttpClientStudy.UnitTest/UseXunitTest.cs b/HttpClientStudy.UnitTest/UseXunitTest.cs index 37ecf64..465822c 100644 --- a/HttpClientStudy.UnitTest/UseXunitTest.cs +++ b/HttpClientStudy.UnitTest/UseXunitTest.cs @@ -1,4 +1,6 @@ -using Xunit.Abstractions; +using Microsoft.Extensions.Logging; + +using Xunit.Abstractions; namespace HttpClientStudy.UnitTest { @@ -7,17 +9,20 @@ namespace HttpClientStudy.UnitTest /// public class UseXUnitTest { - private readonly ITestOutputHelper _logger; + private readonly ITestOutputHelper _testOutput; + private ILogger _logger; - public UseXUnitTest(ITestOutputHelper outputHelper) + public UseXUnitTest(ITestOutputHelper outputHelper,ILogger logger) { - _logger = outputHelper; + _testOutput = outputHelper; + _logger = logger; } [Fact] public void UseXUnit_Test() { - _logger.WriteLine("使用 xUnit 单元测试框架!"); + _testOutput.WriteLine("使用 xUnit 单元测试框架!"); + _logger.LogError("使用 xUnit 单元测试框架!"); Assert.True(true,"使用 xUnit"); } } diff --git a/HttpClientStudy.UnitTest/startup.cs b/HttpClientStudy.UnitTest/startup.cs index 04b9ae9..e7dcf3b 100644 --- a/HttpClientStudy.UnitTest/startup.cs +++ b/HttpClientStudy.UnitTest/startup.cs @@ -12,6 +12,8 @@ using Microsoft.AspNetCore.TestHost; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; +using Serilog; + using Xunit; using Xunit.DependencyInjection; @@ -65,15 +67,9 @@ namespace HttpClientStudy.UnitTest { options.PreserveExecutionContext = true; }) - .ConfigureTestServices(a => - { - Console.WriteLine("+++++++++++++++++++++++++++++++++"); - - a.BuildServiceProvider().GetRequiredService().ApplicationStopping.Register(() => - { - Console.WriteLine("========================="); - }); - + .ConfigureTestServices(services => + { + }) .UseStartup() ; @@ -88,7 +84,7 @@ namespace HttpClientStudy.UnitTest { services.BuildServiceProvider().GetRequiredService().ApplicationStopping.Register(() => { - Console.WriteLine("========================="); + }); } @@ -96,7 +92,13 @@ namespace HttpClientStudy.UnitTest { public void ConfigureServices(IServiceCollection services) { - services.AddLogging(lb => lb.AddXunitOutput()); + services.AddLogging(lb => lb.AddXunitOutput()); + services.AddSerilog((services, loggerConfiguration) => + { + loggerConfiguration + .WriteTo.File("log.txt", outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {SourceContext}: {Message:lj}{NewLine}{Exception}") + .WriteTo.Console(); + }); } public void Configure(IApplicationBuilder app) diff --git a/HttpClientStudy.WebClient/Controllers/CallApiController.cs b/HttpClientStudy.WebClient/Controllers/CallApiController.cs index 79bb06e..615da95 100644 --- a/HttpClientStudy.WebClient/Controllers/CallApiController.cs +++ b/HttpClientStudy.WebClient/Controllers/CallApiController.cs @@ -18,5 +18,11 @@ namespace HttpClientStudy.WebClient.Controllers { return Ok("ping"); } + + [HttpGet] + public IActionResult Exception() + { + throw new Exception("异常测试"); + } } } diff --git a/HttpClientStudy.WebClient/Program.cs b/HttpClientStudy.WebClient/Program.cs index f791495..cc81b07 100644 --- a/HttpClientStudy.WebClient/Program.cs +++ b/HttpClientStudy.WebClient/Program.cs @@ -2,6 +2,9 @@ using System.Diagnostics; using HttpClientStudy.Core.Utils; +//WebApi +StartupUtility.StartWebApiProject(); + var builder = WebApplication.CreateBuilder(args); // Add services to the container. @@ -24,36 +27,28 @@ app.UseAuthorization(); app.MapControllers(); -Process currentProcess = Process.GetCurrentProcess(); -currentProcess.EnableRaisingEvents = true; -currentProcess.Exited += (s, r) => -{ - Console.WriteLine("000000000000000000000000000000000000"); -}; - +#region ˳ʱرWebAPI +/* + * 1˳ִлƣ̫ɿֻ˳ʱִС + * 2˳ ctl+c + * 3˳ ڴй©رս̣رǵWebAPIʱʱرʱ˳쳣˳ + */ // ȡ IHostApplicationLifetime ʵ var applicationLifetime = app.Services.GetRequiredService(); -// עӦóر¼ -applicationLifetime.ApplicationStopping.Register(() => +// עӦóֹͣ¼رWebApi +applicationLifetime.ApplicationStopping.Register(() => { - //رWebApi + //ע⣺ Visual Studio 2022 ԤУִʱ쳣ʽӦԤBug StartupUtility.ExitWebApiProject(); }); -applicationLifetime.ApplicationStopped.Register(() => { - Console.WriteLine("xxxxxxxxxxxxxxxxxxxx"); -}); - -// ע AppDomain δ쳣¼ -AppDomain.CurrentDomain.UnhandledException += (s,e)=> +applicationLifetime.ApplicationStopped.Register(() => { - Console.WriteLine("˳"); -}; - + Console.WriteLine("ֹͣ"); +}); -//ȷWebApi -StartupUtility.StartWebApiProject(); +#endregion app.Run(); diff --git a/HttpClientStudy.sln b/HttpClientStudy.sln index 5398fd0..8097e05 100644 --- a/HttpClientStudy.sln +++ b/HttpClientStudy.sln @@ -15,12 +15,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HttpClientStudy.Service", " EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs", "Docs", "{56D9132E-6D9B-4D4B-B82C-D8F74AA4373A}" ProjectSection(SolutionItems) = preProject + Docs\1.1.概述.ipynb = Docs\1.1.概述.ipynb + Docs\1.2.使用原则.ipynb = Docs\1.2.使用原则.ipynb Docs\说明.md = Docs\说明.md EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HttpClientStudy.Config", "HttpClientStudy.Config\HttpClientStudy.Config.csproj", "{78FCC8F1-C196-4D4F-81A0-D0A1E0843AAE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HttpClientStudy.WebClient", "HttpClientStudy.WebClient\HttpClientStudy.WebClient.csproj", "{40EFD636-C7A1-4AB1-A364-E044FBF9CF50}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HttpClientStudy.WebClient", "HttpClientStudy.WebClient\HttpClientStudy.WebClient.csproj", "{40EFD636-C7A1-4AB1-A364-E044FBF9CF50}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution