瀏覽代碼

更新nuget包,操作日志增加局部异常处理

xiaoxue 4 年之前
父節點
當前提交
7ff1e56a5a

+ 10 - 10
Admin.Core.Common/Admin.Core.Common.csproj

@@ -22,17 +22,17 @@
 
   <ItemGroup>
     <PackageReference Include="CSRedisCore" Version="3.6.5" />
-    <PackageReference Include="FreeSql" Version="1.7.1" />
-    <PackageReference Include="FreeSql.Provider.MySql" Version="1.7.1" />
-    <PackageReference Include="FreeSql.Provider.Oracle" Version="1.7.1" />
-    <PackageReference Include="FreeSql.Provider.PostgreSQL" Version="1.7.1" />
-    <PackageReference Include="FreeSql.Provider.Sqlite" Version="1.7.1" />
-    <PackageReference Include="FreeSql.Provider.SqlServer" Version="1.7.1" />
-    <PackageReference Include="FreeSql.Repository" Version="1.7.1" />
+    <PackageReference Include="FreeSql" Version="1.8.1" />
+    <PackageReference Include="FreeSql.Provider.MySql" Version="1.8.1" />
+    <PackageReference Include="FreeSql.Provider.Oracle" Version="1.8.1" />
+    <PackageReference Include="FreeSql.Provider.PostgreSQL" Version="1.8.1" />
+    <PackageReference Include="FreeSql.Provider.Sqlite" Version="1.8.1" />
+    <PackageReference Include="FreeSql.Provider.SqlServer" Version="1.8.1" />
+    <PackageReference Include="FreeSql.Repository" Version="1.8.1" />
     <PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" />
-    <PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="3.1.7" />
-    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.7" />
-    <PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.1.7" />
+    <PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="3.1.8" />
+    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.8" />
+    <PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.1.8" />
     <PackageReference Include="Microsoft.IdentityModel.Tokens" Version="6.7.1" />
     <PackageReference Include="System.Drawing.Common" Version="4.7.0" />
     <PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="6.7.1" />

+ 2 - 2
Admin.Core.Tests/Admin.Core.Tests.csproj

@@ -7,8 +7,8 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.TestHost" Version="3.1.7" />
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.0" />
+    <PackageReference Include="Microsoft.AspNetCore.TestHost" Version="3.1.8" />
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
     <PackageReference Include="xunit" Version="2.4.1" />
     <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
       <PrivateAssets>all</PrivateAssets>

+ 4 - 4
Admin.Core/Admin.Core.csproj

@@ -44,12 +44,12 @@
     <PackageReference Include="Autofac.Extensions.DependencyInjection" Version="6.0.0" />
     <PackageReference Include="Autofac.Extras.DynamicProxy" Version="5.0.0" />
     <PackageReference Include="Caching.CSRedis" Version="3.6.5" />
-    <PackageReference Include="FluentValidation.AspNetCore" Version="9.1.1" />
+    <PackageReference Include="FluentValidation.AspNetCore" Version="9.2.0" />
     <PackageReference Include="IdentityServer4.AccessTokenValidation" Version="3.0.1" />
-    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.7" />
-    <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.7" />
+    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.8" />
+    <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.8" />
     <PackageReference Include="Microsoft.Extensions.PlatformAbstractions" Version="1.1.0" />
-    <PackageReference Include="NLog" Version="4.7.3" />
+    <PackageReference Include="NLog" Version="4.7.4" />
     <PackageReference Include="NLog.Web.AspNetCore" Version="4.9.3" />
     <PackageReference Include="Swashbuckle.AspNetCore" Version="5.5.1" />
   </ItemGroup>

+ 30 - 14
Admin.Core/Logs/LogHandler.cs

@@ -1,10 +1,13 @@
-using System.Linq;
+using System;
+using System.Linq;
 using System.Diagnostics;
 using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.Filters;
+using Microsoft.Extensions.Logging;
 using Admin.Core.Common.Output;
 using Admin.Core.Service.Admin.OprationLog;
 using Admin.Core.Service.Admin.OprationLog.Input;
-using Microsoft.AspNetCore.Mvc.Filters;
 //using Newtonsoft.Json;
 
 namespace Admin.Core.Logs
@@ -14,14 +17,17 @@ namespace Admin.Core.Logs
     /// </summary>
     public class LogHandler : ILogHandler
     {
+        private readonly ILogger _logger;
         private readonly ApiHelper _apiHelper;
         private readonly IOprationLogService _oprationLogService;
 
         public LogHandler(
+            ILogger<LogHandler> logger,
             ApiHelper apiHelper, 
             IOprationLogService oprationLogService
         )
         {
+            _logger = logger;
             _apiHelper = apiHelper;
             _oprationLogService = oprationLogService;
         }
@@ -30,7 +36,7 @@ namespace Admin.Core.Logs
         {
             var sw = new Stopwatch();
             sw.Start();
-            dynamic actionResult = (await next()).Result;
+            var actionExecutedContext = await next();
             sw.Stop();
 
             //操作参数
@@ -38,19 +44,29 @@ namespace Admin.Core.Logs
             //操作结果
             //var result = JsonConvert.SerializeObject(actionResult?.Value);
 
-            var res = actionResult?.Value as IResponseOutput;
-
-            var input = new OprationLogAddInput
+            try
             {
-                ApiMethod = context.HttpContext.Request.Method.ToLower(),
-                ApiPath = context.ActionDescriptor.AttributeRouteInfo.Template.ToLower(),
-                ElapsedMilliseconds = sw.ElapsedMilliseconds,
-                Status = res?.Success,
-                Msg = res?.Msg
-            };
-            input.ApiLabel = _apiHelper.GetApis().FirstOrDefault(a => a.Path == input.ApiPath)?.Label;
+                var input = new OprationLogAddInput
+                {
+                    ApiMethod = context.HttpContext.Request.Method.ToLower(),
+                    ApiPath = context.ActionDescriptor.AttributeRouteInfo.Template.ToLower(),
+                    ElapsedMilliseconds = sw.ElapsedMilliseconds
+                };
 
-            await _oprationLogService.AddAsync(input);
+                if (actionExecutedContext.Result is ObjectResult result && result.Value is IResponseOutput res)
+                {
+                    input.Status = res.Success;
+                    input.Msg = res.Msg;
+                }
+
+                input.ApiLabel = _apiHelper.GetApis().FirstOrDefault(a => a.Path == input.ApiPath)?.Label;
+                
+                await _oprationLogService.AddAsync(input);
+            }
+            catch (Exception ex)
+            {
+                _logger.LogError("操作日志插入异常:{@ex}", ex);
+            }
         }
     }
 }