Просмотр исходного кода

1、优化日志监听 2、统一接口命名规范

zuohuaijun 3 лет назад
Родитель
Сommit
4b311c2f62
27 измененных файлов с 153 добавлено и 304 удалено
  1. 3 3
      Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj
  2. 31 66
      Admin.NET/Admin.NET.Core/Admin.NET.Core.xml
  3. 0 9
      Admin.NET/Admin.NET.Core/Attribute/NotLogAttribute.cs
  4. 15 43
      Admin.NET/Admin.NET.Core/Entity/SysLogEx.cs
  5. 0 63
      Admin.NET/Admin.NET.Core/Filter/ActionFilter.cs
  6. 0 38
      Admin.NET/Admin.NET.Core/Filter/LogExceptionHandler.cs
  7. 1 0
      Admin.NET/Admin.NET.Core/GlobalUsings.cs
  8. 28 13
      Admin.NET/Admin.NET.Core/Logging/DbLoggingWriter.cs
  9. 1 0
      Admin.NET/Admin.NET.Core/Service/Auth/AuthService.cs
  10. 2 3
      Admin.NET/Admin.NET.Core/Service/CodeGen/CodeGenService.cs
  11. 1 1
      Admin.NET/Admin.NET.Core/Service/Config/SysConfigService.cs
  12. 1 1
      Admin.NET/Admin.NET.Core/Service/Dict/SysDictDataService.cs
  13. 1 1
      Admin.NET/Admin.NET.Core/Service/Dict/SysDictTypeService.cs
  14. 2 3
      Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs
  15. 0 0
      Admin.NET/Admin.NET.Core/Service/Logging/Dto/LogInput.cs
  16. 11 11
      Admin.NET/Admin.NET.Core/Service/Logging/SysLogDiffService.cs
  17. 11 11
      Admin.NET/Admin.NET.Core/Service/Logging/SysLogExService.cs
  18. 11 11
      Admin.NET/Admin.NET.Core/Service/Logging/SysLogOpService.cs
  19. 11 11
      Admin.NET/Admin.NET.Core/Service/Logging/SysLogVisService.cs
  20. 1 1
      Admin.NET/Admin.NET.Core/Service/Role/SysRoleService.cs
  21. 1 1
      Admin.NET/Admin.NET.Core/Service/Tenant/SysTenantService.cs
  22. 1 1
      Admin.NET/Admin.NET.Core/Service/Timer/SysTimerService.cs
  23. 1 1
      Admin.NET/Admin.NET.Core/Service/User/SysUserService.cs
  24. 1 4
      Admin.NET/Admin.NET.Web.Core/Startup.cs
  25. 5 0
      Admin.NET/Admin.NET.Web.Entry/appsettings.Development.json
  26. 5 0
      Admin.NET/Admin.NET.Web.Entry/appsettings.json
  27. 8 8
      Vben2/src/api/sys/admin.ts

+ 3 - 3
Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj

@@ -20,9 +20,9 @@
 
   <ItemGroup>
     <PackageReference Include="Caching.CSRedis" Version="3.8.3" />
-    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.0.0" />
-    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.0.0" />
-    <PackageReference Include="Furion.Pure" Version="4.0.0" />
+    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.0.3" />
+    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.0.3" />
+    <PackageReference Include="Furion.Pure" Version="4.0.3" />
     <PackageReference Include="Magicodes.IE.Excel" Version="2.6.4" />
     <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.7" />
     <PackageReference Include="MySql.Data" Version="8.0.29" />

+ 31 - 66
Admin.NET/Admin.NET.Core/Admin.NET.Core.xml

@@ -9,11 +9,6 @@
             常量下拉框特性
             </summary>
         </member>
-        <member name="T:Admin.NET.Core.NotLogAttribute">
-            <summary>
-            禁用日志特性
-            </summary>
-        </member>
         <member name="T:Admin.NET.Core.NotTableAttribute">
             <summary>
             非实体表特性
@@ -725,49 +720,29 @@
             系统异常日志表
             </summary>
         </member>
-        <member name="P:Admin.NET.Core.SysLogEx.ClassName">
-            <summary>
-            类名
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.SysLogEx.MethodName">
-            <summary>
-            方法名
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.SysLogEx.ExceptionName">
-            <summary>
-            异常名称
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.SysLogEx.ExceptionMsg">
+        <member name="P:Admin.NET.Core.SysLogEx.LogName">
             <summary>
-            异常信息
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.SysLogEx.ExceptionSource">
-            <summary>
-            异常源
+            日志名称
             </summary>
         </member>
-        <member name="P:Admin.NET.Core.SysLogEx.StackTrace">
+        <member name="P:Admin.NET.Core.SysLogEx.LogLevel">
             <summary>
-            堆栈信息
+            日志级别
             </summary>
         </member>
-        <member name="P:Admin.NET.Core.SysLogEx.ParamsObj">
+        <member name="P:Admin.NET.Core.SysLogEx.EventId">
             <summary>
-            参数对象
+            事件Id
             </summary>
         </member>
-        <member name="P:Admin.NET.Core.SysLogEx.UserName">
+        <member name="P:Admin.NET.Core.SysLogEx.Message">
             <summary>
-            账号名称
+            日志消息
             </summary>
         </member>
-        <member name="P:Admin.NET.Core.SysLogEx.RealName">
+        <member name="P:Admin.NET.Core.SysLogEx.Exception">
             <summary>
-            真实姓名
+            异常对象
             </summary>
         </member>
         <member name="T:Admin.NET.Core.SysLogOp">
@@ -2737,16 +2712,6 @@
             <typeparam name="T"></typeparam>
             <returns></returns>
         </member>
-        <member name="T:Admin.NET.Core.ActionFilter">
-            <summary>
-            操作筛选器
-            </summary>
-        </member>
-        <member name="T:Admin.NET.Core.LogExceptionHandler">
-            <summary>
-            全局异常处理器
-            </summary>
-        </member>
         <member name="T:Admin.NET.Core.ResultFilter">
             <summary>
             结果筛选器
@@ -3477,7 +3442,7 @@
             代码生成器服务
             </summary>
         </member>
-        <member name="M:Admin.NET.Core.Service.CodeGenService.QueryCodeGenPageList(Admin.NET.Core.Service.CodeGenInput)">
+        <member name="M:Admin.NET.Core.Service.CodeGenService.GetCodeGenPage(Admin.NET.Core.Service.CodeGenInput)">
             <summary>
             分页查询
             </summary>
@@ -4086,7 +4051,7 @@
             系统参数配置服务
             </summary>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysConfigService.GetConfigPageList(Admin.NET.Core.Service.PageConfigInput)">
+        <member name="M:Admin.NET.Core.Service.SysConfigService.GetConfigPage(Admin.NET.Core.Service.PageConfigInput)">
             <summary>
             获取参数配置分页列表
             </summary>
@@ -4563,7 +4528,7 @@
             系统字典值服务
             </summary>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysDictDataService.GetDictDataPageList(Admin.NET.Core.Service.PageDictDataInput)">
+        <member name="M:Admin.NET.Core.Service.SysDictDataService.GetDictDataPage(Admin.NET.Core.Service.PageDictDataInput)">
             <summary>
             获取字典值分页列表
             </summary>
@@ -4637,7 +4602,7 @@
             系统字典类型服务
             </summary>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysDictTypeService.GetDictTypePageList(Admin.NET.Core.Service.PageDictTypeInput)">
+        <member name="M:Admin.NET.Core.Service.SysDictTypeService.GetDictTypePage(Admin.NET.Core.Service.PageDictTypeInput)">
             <summary>
             获取字典类型分页列表
             </summary>
@@ -4741,7 +4706,7 @@
             系统文件服务
             </summary>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysFileService.QueryFilePageList(Admin.NET.Core.Service.PageFileInput)">
+        <member name="M:Admin.NET.Core.Service.SysFileService.GetFilePage(Admin.NET.Core.Service.PageFileInput)">
             <summary>
             获取文件分页列表
             </summary>
@@ -4799,69 +4764,69 @@
             结束时间
             </summary>
         </member>
-        <member name="T:Admin.NET.Core.Service.SysDiffLogService">
+        <member name="T:Admin.NET.Core.Service.SysLogDiffService">
             <summary>
             差异日志服务
             </summary>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysDiffLogService.GetDiffLogList(Admin.NET.Core.Service.PageLogInput)">
+        <member name="M:Admin.NET.Core.Service.SysLogDiffService.GetLogDiffPage(Admin.NET.Core.Service.PageLogInput)">
             <summary>
             获取差异日志分页列表
             </summary>
             <returns></returns>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysDiffLogService.ClearVisLog">
+        <member name="M:Admin.NET.Core.Service.SysLogDiffService.ClearLogDiff">
             <summary>
             清空差异日志
             </summary>
             <returns></returns>
         </member>
-        <member name="T:Admin.NET.Core.Service.SysExLogService">
+        <member name="T:Admin.NET.Core.Service.SysLogExService">
             <summary>
             系统异常日志服务
             </summary>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysExLogService.GetExLogList(Admin.NET.Core.Service.PageLogInput)">
+        <member name="M:Admin.NET.Core.Service.SysLogExService.GetLogExPage(Admin.NET.Core.Service.PageLogInput)">
             <summary>
             获取异常日志分页列表
             </summary>
             <returns></returns>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysExLogService.ClearExLog">
+        <member name="M:Admin.NET.Core.Service.SysLogExService.ClearLogEx">
             <summary>
             清空异常日志
             </summary>
             <returns></returns>
         </member>
-        <member name="T:Admin.NET.Core.Service.SysOpLogService">
+        <member name="T:Admin.NET.Core.Service.SysLogOpService">
             <summary>
             系统操作日志服务
             </summary>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysOpLogService.GetOpLogList(Admin.NET.Core.Service.PageLogInput)">
+        <member name="M:Admin.NET.Core.Service.SysLogOpService.GetLogOpPage(Admin.NET.Core.Service.PageLogInput)">
             <summary>
             获取操作日志分页列表
             </summary>
             <returns></returns>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysOpLogService.ClearOpLog">
+        <member name="M:Admin.NET.Core.Service.SysLogOpService.ClearLogOp">
             <summary>
             清空操作日志
             </summary>
             <returns></returns>
         </member>
-        <member name="T:Admin.NET.Core.Service.SysVisLogService">
+        <member name="T:Admin.NET.Core.Service.SysLogVisService">
             <summary>
             系统访问日志服务
             </summary>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysVisLogService.GetVisLogList(Admin.NET.Core.Service.PageLogInput)">
+        <member name="M:Admin.NET.Core.Service.SysLogVisService.GetLogVisPage(Admin.NET.Core.Service.PageLogInput)">
             <summary>
             获取访问日志分页列表
             </summary>
             <returns></returns>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysVisLogService.ClearVisLog">
+        <member name="M:Admin.NET.Core.Service.SysLogVisService.ClearLogVis">
             <summary>
             清空访问日志
             </summary>
@@ -5569,7 +5534,7 @@
             系统角色服务
             </summary>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysRoleService.GetRolePageList(Admin.NET.Core.Service.PageRoleInput)">
+        <member name="M:Admin.NET.Core.Service.SysRoleService.GetRolePage(Admin.NET.Core.Service.PageRoleInput)">
             <summary>
             获取角色分页列表
             </summary>
@@ -5741,7 +5706,7 @@
             租户管理服务
             </summary>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysTenantService.GetTenantPageList(Admin.NET.Core.Service.TenantInput)">
+        <member name="M:Admin.NET.Core.Service.SysTenantService.GetTenantPage(Admin.NET.Core.Service.TenantInput)">
             <summary>
             获取租户分页列表
             </summary>
@@ -5871,7 +5836,7 @@
             定时任务服务
             </summary>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysTimerService.GetTimerPageList(Admin.NET.Core.Service.PageTimerInput)">
+        <member name="M:Admin.NET.Core.Service.SysTimerService.GetTimerPage(Admin.NET.Core.Service.PageTimerInput)">
             <summary>
             获取任务分页列表
             </summary>
@@ -6253,7 +6218,7 @@
             系统用户服务
             </summary>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysUserService.GetUserPageList(Admin.NET.Core.Service.PageUserInput)">
+        <member name="M:Admin.NET.Core.Service.SysUserService.GetUserPage(Admin.NET.Core.Service.PageUserInput)">
             <summary>
             获取用户分页列表
             </summary>

+ 0 - 9
Admin.NET/Admin.NET.Core/Attribute/NotLogAttribute.cs

@@ -1,9 +0,0 @@
-namespace Admin.NET.Core;
-
-/// <summary>
-/// 禁用日志特性
-/// </summary>
-[SuppressSniffer, AttributeUsage(AttributeTargets.Class | AttributeTargets.Method | AttributeTargets.Property)]
-public class NotLogAttribute : Attribute
-{
-}

+ 15 - 43
Admin.NET/Admin.NET.Core/Entity/SysLogEx.cs

@@ -7,60 +7,32 @@
 public class SysLogEx : EntityBase
 {
     /// <summary>
-    /// 类名
+    /// 日志名称
     /// </summary>
-    [SugarColumn(ColumnDescription = "类名", Length = 100)]
-    [MaxLength(100)]
-    public string ClassName { get; set; }
+    [SugarColumn(ColumnDescription = "日志名称", Length = 200)]
+    public string LogName { get; set; }
 
     /// <summary>
-    /// 方法名
+    /// 日志级别
     /// </summary>
-    [SugarColumn(ColumnDescription = "方法名", Length = 100)]
-    [MaxLength(100)]
-    public string MethodName { get; set; }
+    [SugarColumn(ColumnDescription = "日志级别", Length = 20)]
+    public string LogLevel { get; set; }
 
     /// <summary>
-    /// 异常名称
+    /// 事件Id
     /// </summary>
-    [SugarColumn(ColumnDescription = "异常名称", ColumnDataType = "longtext,text,clob")]
-    public string ExceptionName { get; set; }
+    [SugarColumn(ColumnDescription = "事件Id", ColumnDataType = "longtext,text,clob")]
+    public string EventId { get; set; }
 
     /// <summary>
-    /// 异常信
+    /// 日志消
     /// </summary>
-    [SugarColumn(ColumnDescription = "异常信息", ColumnDataType = "longtext,text,clob")]
-    public string ExceptionMsg { get; set; }
+    [SugarColumn(ColumnDescription = "日志消息", ColumnDataType = "longtext,text,clob")]
+    public string Message { get; set; }
 
     /// <summary>
-    /// 异常
+    /// 异常对象
     /// </summary>
-    [SugarColumn(ColumnDescription = "异常源", ColumnDataType = "longtext,text,clob")]
-    public string ExceptionSource { get; set; }
-
-    /// <summary>
-    /// 堆栈信息
-    /// </summary>
-    [SugarColumn(ColumnDescription = "堆栈信息", ColumnDataType = "longtext,text,clob")]
-    public string StackTrace { get; set; }
-
-    /// <summary>
-    /// 参数对象
-    /// </summary>
-    [SugarColumn(ColumnDescription = "参数对象", ColumnDataType = "longtext,text,clob")]
-    public string ParamsObj { get; set; }
-
-    /// <summary>
-    /// 账号名称
-    /// </summary>
-    [SugarColumn(ColumnDescription = "账号名称", Length = 20)]
-    [MaxLength(20)]
-    public string UserName { get; set; }
-
-    /// <summary>
-    /// 真实姓名
-    /// </summary>
-    [SugarColumn(ColumnDescription = "真实姓名", Length = 20)]
-    [MaxLength(20)]
-    public string RealName { get; set; }
+    [SugarColumn(ColumnDescription = "异常对象", ColumnDataType = "longtext,text,clob")]
+    public string Exception { get; set; }
 }

+ 0 - 63
Admin.NET/Admin.NET.Core/Filter/ActionFilter.cs

@@ -1,63 +0,0 @@
-namespace Admin.NET.Core;
-
-/// <summary>
-/// 操作筛选器
-/// </summary>
-public class ActionFilter : IAsyncActionFilter
-{
-    public ActionFilter()
-    {
-    }
-
-    public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
-    {
-        await next();
-
-        //// 是否有禁用操作日志属性
-        //if (context.ActionDescriptor.EndpointMetadata.Any(m => m.GetType() == typeof(NotLogAttribute)))
-        //{
-        //    await next();
-        //    return;
-        //}
-
-        //// 是否开启操作日志
-        //var sysOpLog = await App.GetService<SysConfigService>().GetConfigCache(CommonConst.SysOpLog);
-        //if (string.IsNullOrWhiteSpace(sysOpLog) || !bool.Parse(sysOpLog))
-        //{
-        //    await next();
-        //    return;
-        //}
-
-        //var sw = new Stopwatch();
-        //sw.Start();
-        //var actionContext = await next();
-        //sw.Stop();
-
-        //var httpContext = context.HttpContext;
-        //var httpRequest = httpContext.Request;
-
-        //var isRequestSucceed = actionContext.Exception == null; // 判断是否请求成功(没有异常就是成功)
-        //var headers = httpRequest.Headers;
-        //var clientInfo = headers.ContainsKey("User-Agent") ? Parser.GetDefault().Parse(headers["User-Agent"]) : null;
-        //var actionDescriptor = context.ActionDescriptor as ControllerActionDescriptor;
-        //var ip = httpContext.GetRemoteIpAddressToIPv4();
-
-        //await _eventPublisher.PublishAsync("Add:OpLog", new SysLogOp
-        //{
-        //    Success = isRequestSucceed ? YesNoEnum.Y : YesNoEnum.N,
-        //    Ip = ip,
-        //    Location = httpRequest.GetRequestUrlAddress(),
-        //    Browser = clientInfo?.UA.Family + clientInfo?.UA.Major,
-        //    Os = clientInfo?.OS.Family + clientInfo?.OS.Major,
-        //    Url = httpRequest.Path,
-        //    ClassName = context.Controller.ToString(),
-        //    MethodName = actionDescriptor?.ActionName,
-        //    ReqMethod = httpRequest.Method,
-        //    Param = context.ActionArguments.Count < 1 ? string.Empty : JSON.Serialize(context.ActionArguments),
-        //    Result = actionContext.Result?.GetType() == typeof(JsonResult) ? JSON.Serialize(actionContext.Result) : string.Empty,
-        //    ElapsedTime = sw.ElapsedMilliseconds,
-        //    UserName = httpContext.User?.FindFirstValue(ClaimConst.UserName),
-        //    RealName = httpContext.User?.FindFirstValue(ClaimConst.RealName)
-        //});
-    }
-}

+ 0 - 38
Admin.NET/Admin.NET.Core/Filter/LogExceptionHandler.cs

@@ -1,38 +0,0 @@
-using Furion.Logging.Extensions;
-
-namespace Admin.NET.Core;
-
-/// <summary>
-/// 全局异常处理器
-/// </summary>
-public class LogExceptionHandler : IGlobalExceptionHandler, ISingleton
-{
-    private readonly IEventPublisher _eventPublisher;
-
-    public LogExceptionHandler(IEventPublisher eventPublisher)
-    {
-        _eventPublisher = eventPublisher;
-    }
-
-    public async Task OnExceptionAsync(ExceptionContext context)
-    {
-        var stackTrace = EnhancedStackTrace.Current();
-
-        // 写日志数据库
-        await _eventPublisher.PublishAsync("Add:ExLog", new SysLogEx
-        {
-            ClassName = context.Exception.TargetSite.DeclaringType?.FullName,
-            MethodName = context.Exception.TargetSite.Name,
-            ExceptionName = context.Exception.Message,
-            ExceptionMsg = context.Exception.Message,
-            ExceptionSource = context.Exception.Source,
-            StackTrace = stackTrace.ToString(), // context.Exception.StackTrace,
-            ParamsObj = context.Exception.TargetSite.GetParameters().ToString(),
-            UserName = context.HttpContext.User?.FindFirst(ClaimConst.UserName)?.Value,
-            RealName = context.HttpContext.User?.FindFirst(ClaimConst.RealName)?.Value
-        });
-
-        // 写日志文件
-        stackTrace.ToString().LogError();
-    }
-}

+ 1 - 0
Admin.NET/Admin.NET.Core/GlobalUsings.cs

@@ -10,6 +10,7 @@ global using Furion.DynamicApiController;
 global using Furion.EventBus;
 global using Furion.FriendlyException;
 global using Furion.JsonSerialization;
+global using Furion.Logging;
 global using Furion.RemoteRequest.Extensions;
 global using Furion.SensitiveDetection;
 global using Furion.TaskScheduler;

+ 28 - 13
Admin.NET/Admin.NET.Core/Logging/DbLoggingWriter.cs

@@ -1,28 +1,43 @@
-using Furion.Logging;
-
-namespace Admin.NET.Core;
+namespace Admin.NET.Core;
 
 /// <summary>
 /// 数据库日志写入器
 /// </summary>
 public class DbLoggingWriter : IDatabaseLoggingWriter
 {
-    private readonly SqlSugarRepository<SysLogOp> _sysOpLogRep;
+    private readonly SqlSugarRepository<SysLogOp> _sysLogOpRep; // 操作日志
+    private readonly SqlSugarRepository<SysLogEx> _sysLogExRep; // 异常日志
 
-    public DbLoggingWriter(SqlSugarRepository<SysLogOp> sysOpLogRep)
+    public DbLoggingWriter(SqlSugarRepository<SysLogOp> sysLogOpRep,
+        SqlSugarRepository<SysLogEx> sysLogExRep)
     {
-        _sysOpLogRep = sysOpLogRep;
+        _sysLogOpRep = sysLogOpRep;
+        _sysLogExRep = sysLogExRep;
     }
 
     public async void Write(LogMessage logMsg, bool flush)
     {
-        await _sysOpLogRep.InsertAsync(new SysLogOp
+        if (logMsg.LogLevel == Microsoft.Extensions.Logging.LogLevel.Information)
+        {
+            await _sysLogOpRep.InsertAsync(new SysLogOp
+            {
+                LogName = logMsg.LogName,
+                LogLevel = logMsg.LogLevel.ToString(),
+                EventId = JSON.Serialize(logMsg.EventId),
+                Message = logMsg.Message,
+                Exception = logMsg.Exception == null ? "" : JSON.Serialize(logMsg.Exception),
+            });
+        }
+        else
         {
-            LogName = logMsg.LogName,
-            LogLevel = logMsg.LogLevel.ToString(),
-            EventId = JSON.Serialize(logMsg.EventId),
-            Message = logMsg.Message,
-            Exception = logMsg.Exception == null ? "" : JSON.Serialize(logMsg.Exception),
-        });
+            await _sysLogExRep.InsertAsync(new SysLogEx
+            {
+                LogName = logMsg.LogName,
+                LogLevel = logMsg.LogLevel.ToString(),
+                EventId = JSON.Serialize(logMsg.EventId),
+                Message = logMsg.Message,
+                Exception = logMsg.Exception == null ? "" : JSON.Serialize(logMsg.Exception),
+            });
+        }
     }
 }

+ 1 - 0
Admin.NET/Admin.NET.Core/Service/Auth/AuthService.cs

@@ -45,6 +45,7 @@ public class AuthService : IDynamicApiController, ITransient
     /// <returns></returns>
     [HttpPost("/login")]
     [AllowAnonymous]
+    [SuppressMonitor]
     public async Task<LoginOutput> Login([Required] LoginInput input)
     {
         var encryptPasswod = MD5Encryption.Encrypt(input.Password); // 加密密码

+ 2 - 3
Admin.NET/Admin.NET.Core/Service/CodeGen/CodeGenService.cs

@@ -29,13 +29,12 @@ public class CodeGenService : IDynamicApiController, ITransient
     /// <param name="input"></param>
     /// <returns></returns>
     [HttpGet("/codeGenerate/page")]
-    public async Task<dynamic> QueryCodeGenPageList([FromQuery] CodeGenInput input)
+    public async Task<dynamic> GetCodeGenPage([FromQuery] CodeGenInput input)
     {
         var tableName = !string.IsNullOrEmpty(input.TableName?.Trim());
-        var codeGens = await _db.Queryable<SysCodeGen>()
+        return await _db.Queryable<SysCodeGen>()
             .WhereIF(!string.IsNullOrWhiteSpace(input.TableName), u => u.TableName.Contains(input.TableName.Trim()))
             .ToPagedListAsync(input.Page, input.PageSize);
-        return codeGens;
     }
 
     /// <summary>

+ 1 - 1
Admin.NET/Admin.NET.Core/Service/Config/SysConfigService.cs

@@ -22,7 +22,7 @@ public class SysConfigService : IDynamicApiController, ITransient
     /// <param name="input"></param>
     /// <returns></returns>
     [HttpGet("/sysConfig/page")]
-    public async Task<SqlSugarPagedList<SysConfig>> GetConfigPageList([FromQuery] PageConfigInput input)
+    public async Task<SqlSugarPagedList<SysConfig>> GetConfigPage([FromQuery] PageConfigInput input)
     {
         return await _sysConfigRep.AsQueryable()
             .WhereIF(!string.IsNullOrWhiteSpace(input.Name?.Trim()), u => u.Name.Contains(input.Name))

+ 1 - 1
Admin.NET/Admin.NET.Core/Service/Dict/SysDictDataService.cs

@@ -20,7 +20,7 @@ public class SysDictDataService : IDynamicApiController, ITransient
     /// <param name="input"></param>
     /// <returns></returns>
     [HttpGet("/sysDictData/page")]
-    public async Task<SqlSugarPagedList<SysDictData>> GetDictDataPageList([FromQuery] PageDictDataInput input)
+    public async Task<SqlSugarPagedList<SysDictData>> GetDictDataPage([FromQuery] PageDictDataInput input)
     {
         var code = !string.IsNullOrEmpty(input.Code?.Trim());
         var value = !string.IsNullOrEmpty(input.Value?.Trim());

+ 1 - 1
Admin.NET/Admin.NET.Core/Service/Dict/SysDictTypeService.cs

@@ -22,7 +22,7 @@ public class SysDictTypeService : IDynamicApiController, ITransient
     /// </summary>
     /// <returns></returns>
     [HttpGet("/sysDictType/page")]
-    public async Task<SqlSugarPagedList<SysDictType>> GetDictTypePageList([FromQuery] PageDictTypeInput input)
+    public async Task<SqlSugarPagedList<SysDictType>> GetDictTypePage([FromQuery] PageDictTypeInput input)
     {
         var code = !string.IsNullOrEmpty(input.Code?.Trim());
         var name = !string.IsNullOrEmpty(input.Name?.Trim());

+ 2 - 3
Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs

@@ -34,15 +34,14 @@ public class SysFileService : IDynamicApiController, ITransient
     /// <param name="input"></param>
     /// <returns></returns>
     [HttpGet("/sysFile/page")]
-    public async Task<SqlSugarPagedList<SysFile>> QueryFilePageList([FromQuery] PageFileInput input)
+    public async Task<SqlSugarPagedList<SysFile>> GetFilePage([FromQuery] PageFileInput input)
     {
-        var files = await _sysFileRep.AsQueryable()
+        return await _sysFileRep.AsQueryable()
             .WhereIF(!string.IsNullOrWhiteSpace(input.FileName), u => u.FileName.Contains(input.FileName.Trim()))
             .WhereIF(!string.IsNullOrWhiteSpace(input.StartTime.ToString()) && !string.IsNullOrWhiteSpace(input.EndTime.ToString()),
                         u => u.CreateTime >= input.StartTime && u.CreateTime <= input.EndTime)
             .OrderBy(u => u.CreateTime, SqlSugar.OrderByType.Desc)
             .ToPagedListAsync(input.Page, input.PageSize);
-        return files;
     }
 
     /// <summary>

+ 0 - 0
Admin.NET/Admin.NET.Core/Service/log/Dto/LogInput.cs → Admin.NET/Admin.NET.Core/Service/Logging/Dto/LogInput.cs


+ 11 - 11
Admin.NET/Admin.NET.Core/Service/log/SysDiffLogService.cs → Admin.NET/Admin.NET.Core/Service/Logging/SysLogDiffService.cs

@@ -4,24 +4,24 @@
 /// 差异日志服务
 /// </summary>
 [ApiDescriptionSettings(Name = "差异日志", Order = 180)]
-public class SysDiffLogService : IDynamicApiController, ITransient
+public class SysLogDiffService : IDynamicApiController, ITransient
 {
-    private readonly SqlSugarRepository<SysLogDiff> _sysDiffLogRep;
+    private readonly SqlSugarRepository<SysLogDiff> _sysLogDiffRep;
 
-    public SysDiffLogService(SqlSugarRepository<SysLogDiff> sysDiffLogRep)
+    public SysLogDiffService(SqlSugarRepository<SysLogDiff> sysLogDiffRep)
     {
-        _sysDiffLogRep = sysDiffLogRep;
+        _sysLogDiffRep = sysLogDiffRep;
     }
 
     /// <summary>
     /// 获取差异日志分页列表
     /// </summary>
     /// <returns></returns>
-    [HttpGet("/sysDiffLog/page")]
-    [NotLog]
-    public async Task<SqlSugarPagedList<SysLogDiff>> GetDiffLogList([FromQuery] PageLogInput input)
+    [HttpGet("/sysLogDiff/page")]
+    [SuppressMonitor]
+    public async Task<SqlSugarPagedList<SysLogDiff>> GetLogDiffPage([FromQuery] PageLogInput input)
     {
-        return await _sysDiffLogRep.AsQueryable()
+        return await _sysLogDiffRep.AsQueryable()
             .WhereIF(!string.IsNullOrWhiteSpace(input.StartTime.ToString()) && !string.IsNullOrWhiteSpace(input.EndTime.ToString()),
                         u => u.CreateTime >= input.StartTime && u.CreateTime <= input.EndTime)
             .OrderBy(u => u.CreateTime, SqlSugar.OrderByType.Desc)
@@ -32,9 +32,9 @@ public class SysDiffLogService : IDynamicApiController, ITransient
     /// 清空差异日志
     /// </summary>
     /// <returns></returns>
-    [HttpPost("/sysDiffLog/clear")]
-    public async Task<bool> ClearVisLog()
+    [HttpPost("/sysLogDiff/clear")]
+    public async Task<bool> ClearLogDiff()
     {
-        return await _sysDiffLogRep.DeleteAsync(u => u.Id > 0);
+        return await _sysLogDiffRep.DeleteAsync(u => u.Id > 0);
     }
 }

+ 11 - 11
Admin.NET/Admin.NET.Core/Service/log/SysExLogService.cs → Admin.NET/Admin.NET.Core/Service/Logging/SysLogExService.cs

@@ -4,24 +4,24 @@
 /// 系统异常日志服务
 /// </summary>
 [ApiDescriptionSettings(Name = "异常日志", Order = 178)]
-public class SysExLogService : IDynamicApiController, ITransient
+public class SysLogExService : IDynamicApiController, ITransient
 {
-    private readonly SqlSugarRepository<SysLogEx> _sysExLogRep;
+    private readonly SqlSugarRepository<SysLogEx> _sysLogExRep;
 
-    public SysExLogService(SqlSugarRepository<SysLogEx> sysExLogRep)
+    public SysLogExService(SqlSugarRepository<SysLogEx> sysLogExRep)
     {
-        _sysExLogRep = sysExLogRep;
+        _sysLogExRep = sysLogExRep;
     }
 
     /// <summary>
     /// 获取异常日志分页列表
     /// </summary>
     /// <returns></returns>
-    [HttpGet("/sysExLog/page")]
-    [NotLog]
-    public async Task<SqlSugarPagedList<SysLogEx>> GetExLogList([FromQuery] PageLogInput input)
+    [HttpGet("/sysLogEx/page")]
+    [SuppressMonitor]
+    public async Task<SqlSugarPagedList<SysLogEx>> GetLogExPage([FromQuery] PageLogInput input)
     {
-        return await _sysExLogRep.AsQueryable()
+        return await _sysLogExRep.AsQueryable()
             .WhereIF(!string.IsNullOrWhiteSpace(input.StartTime.ToString()) && !string.IsNullOrWhiteSpace(input.EndTime.ToString()),
                         u => u.CreateTime >= input.StartTime && u.CreateTime <= input.EndTime)
             .OrderBy(u => u.CreateTime, SqlSugar.OrderByType.Desc)
@@ -32,9 +32,9 @@ public class SysExLogService : IDynamicApiController, ITransient
     /// 清空异常日志
     /// </summary>
     /// <returns></returns>
-    [HttpPost("/sysExLog/clear")]
-    public async Task<bool> ClearExLog()
+    [HttpPost("/sysLogEx/clear")]
+    public async Task<bool> ClearLogEx()
     {
-        return await _sysExLogRep.DeleteAsync(u => u.Id > 0);
+        return await _sysLogExRep.DeleteAsync(u => u.Id > 0);
     }
 }

+ 11 - 11
Admin.NET/Admin.NET.Core/Service/log/SysOpLogService.cs → Admin.NET/Admin.NET.Core/Service/Logging/SysLogOpService.cs

@@ -4,24 +4,24 @@
 /// 系统操作日志服务
 /// </summary>
 [ApiDescriptionSettings(Name = "操作日志", Order = 179)]
-public class SysOpLogService : IDynamicApiController, ITransient
+public class SysLogOpService : IDynamicApiController, ITransient
 {
-    private readonly SqlSugarRepository<SysLogOp> _sysOpLogRep;
+    private readonly SqlSugarRepository<SysLogOp> _sysLogOpRep;
 
-    public SysOpLogService(SqlSugarRepository<SysLogOp> sysOpLogRep)
+    public SysLogOpService(SqlSugarRepository<SysLogOp> sysLogOpRep)
     {
-        _sysOpLogRep = sysOpLogRep;
+        _sysLogOpRep = sysLogOpRep;
     }
 
     /// <summary>
     /// 获取操作日志分页列表
     /// </summary>
     /// <returns></returns>
-    [HttpGet("/sysOpLog/page")]
-    [NotLog]
-    public async Task<SqlSugarPagedList<SysLogOp>> GetOpLogList([FromQuery] PageLogInput input)
+    [HttpGet("/sysLogOp/page")]
+    [SuppressMonitor]
+    public async Task<SqlSugarPagedList<SysLogOp>> GetLogOpPage([FromQuery] PageLogInput input)
     {
-        return await _sysOpLogRep.AsQueryable()
+        return await _sysLogOpRep.AsQueryable()
             .WhereIF(!string.IsNullOrWhiteSpace(input.StartTime.ToString()) && !string.IsNullOrWhiteSpace(input.EndTime.ToString()),
                         u => u.CreateTime >= input.StartTime && u.CreateTime <= input.EndTime)
             .OrderBy(u => u.CreateTime, SqlSugar.OrderByType.Desc)
@@ -32,9 +32,9 @@ public class SysOpLogService : IDynamicApiController, ITransient
     /// 清空操作日志
     /// </summary>
     /// <returns></returns>
-    [HttpPost("/sysOpLog/clear")]
-    public async Task<bool> ClearOpLog()
+    [HttpPost("/sysLogOp/clear")]
+    public async Task<bool> ClearLogOp()
     {
-        return await _sysOpLogRep.DeleteAsync(u => u.Id > 0);
+        return await _sysLogOpRep.DeleteAsync(u => u.Id > 0);
     }
 }

+ 11 - 11
Admin.NET/Admin.NET.Core/Service/log/SysVisLogService.cs → Admin.NET/Admin.NET.Core/Service/Logging/SysLogVisService.cs

@@ -4,24 +4,24 @@
 /// 系统访问日志服务
 /// </summary>
 [ApiDescriptionSettings(Name = "访问日志", Order = 180)]
-public class SysVisLogService : IDynamicApiController, ITransient
+public class SysLogVisService : IDynamicApiController, ITransient
 {
-    private readonly SqlSugarRepository<SysLogVis> _sysVisLogRep;
+    private readonly SqlSugarRepository<SysLogVis> _sysLogVisRep;
 
-    public SysVisLogService(SqlSugarRepository<SysLogVis> sysVisLogRep)
+    public SysLogVisService(SqlSugarRepository<SysLogVis> sysLogVisRep)
     {
-        _sysVisLogRep = sysVisLogRep;
+        _sysLogVisRep = sysLogVisRep;
     }
 
     /// <summary>
     /// 获取访问日志分页列表
     /// </summary>
     /// <returns></returns>
-    [HttpGet("/sysVisLog/page")]
-    [NotLog]
-    public async Task<SqlSugarPagedList<SysLogVis>> GetVisLogList([FromQuery] PageLogInput input)
+    [HttpGet("/sysLogVis/page")]
+    [SuppressMonitor]
+    public async Task<SqlSugarPagedList<SysLogVis>> GetLogVisPage([FromQuery] PageLogInput input)
     {
-        return await _sysVisLogRep.AsQueryable()
+        return await _sysLogVisRep.AsQueryable()
             .WhereIF(!string.IsNullOrWhiteSpace(input.StartTime.ToString()) && !string.IsNullOrWhiteSpace(input.EndTime.ToString()),
                         u => u.CreateTime >= input.StartTime && u.CreateTime <= input.EndTime)
             .OrderBy(u => u.CreateTime, SqlSugar.OrderByType.Desc)
@@ -32,9 +32,9 @@ public class SysVisLogService : IDynamicApiController, ITransient
     /// 清空访问日志
     /// </summary>
     /// <returns></returns>
-    [HttpPost("/sysVisLog/clear")]
-    public async Task<bool> ClearVisLog()
+    [HttpPost("/sysLogVis/clear")]
+    public async Task<bool> ClearLogVis()
     {
-        return await _sysVisLogRep.DeleteAsync(u => u.Id > 0);
+        return await _sysLogVisRep.DeleteAsync(u => u.Id > 0);
     }
 }

+ 1 - 1
Admin.NET/Admin.NET.Core/Service/Role/SysRoleService.cs

@@ -37,7 +37,7 @@ public class SysRoleService : IDynamicApiController, ITransient
     /// <param name="input"></param>
     /// <returns></returns>
     [HttpGet("/sysRole/page")]
-    public async Task<SqlSugarPagedList<SysRole>> GetRolePageList([FromQuery] PageRoleInput input)
+    public async Task<SqlSugarPagedList<SysRole>> GetRolePage([FromQuery] PageRoleInput input)
     {
         return await _sysRoleRep.AsQueryable()
             .WhereIF(!string.IsNullOrWhiteSpace(input.Name), u => u.Name.Contains(input.Name))

+ 1 - 1
Admin.NET/Admin.NET.Core/Service/Tenant/SysTenantService.cs

@@ -46,7 +46,7 @@ public class SysTenantService : IDynamicApiController, ITransient
     /// <param name="input"></param>
     /// <returns></returns>
     [HttpGet("/sysTenant/page")]
-    public async Task<dynamic> GetTenantPageList([FromQuery] TenantInput input)
+    public async Task<dynamic> GetTenantPage([FromQuery] TenantInput input)
     {
         return await _tenantRep.Context.Queryable<SysTenant>()
             .WhereIF(!string.IsNullOrWhiteSpace(input.Name), u => u.Name.Contains(input.Name.Trim()))

+ 1 - 1
Admin.NET/Admin.NET.Core/Service/Timer/SysTimerService.cs

@@ -22,7 +22,7 @@ public class SysTimerService : IDynamicApiController, ITransient
     /// <param name="input"></param>
     /// <returns></returns>
     [HttpGet("/sysTimer/page")]
-    public async Task<SqlSugarPagedList<TimerOutput>> GetTimerPageList([FromQuery] PageTimerInput input)
+    public async Task<SqlSugarPagedList<TimerOutput>> GetTimerPage([FromQuery] PageTimerInput input)
     {
         var workers = SpareTime.GetWorkers().ToList();
 

+ 1 - 1
Admin.NET/Admin.NET.Core/Service/User/SysUserService.cs

@@ -37,7 +37,7 @@ public class SysUserService : IDynamicApiController, ITransient
     /// <param name="input"></param>
     /// <returns></returns>
     [HttpGet("/sysUser/page")]
-    public async Task<SqlSugarPagedList<SysUser>> GetUserPageList([FromQuery] PageUserInput input)
+    public async Task<SqlSugarPagedList<SysUser>> GetUserPage([FromQuery] PageUserInput input)
     {
         var orgList = input.OrgId > 0 ? await _sysOrgService.GetChildIdListWithSelfById(input.OrgId) : null;
 

+ 1 - 4
Admin.NET/Admin.NET.Web.Core/Startup.cs

@@ -1,6 +1,5 @@
 using Admin.NET.Core;
 using Furion;
-using Furion.Logging;
 using Microsoft.AspNetCore.Builder;
 using Microsoft.AspNetCore.Hosting;
 using Microsoft.Extensions.DependencyInjection;
@@ -33,12 +32,10 @@ public class Startup : AppStartup
         services.AddTaskScheduler();
         // 脱敏检测
         services.AddSensitiveDetection();
-        // 操作拦截器
-        services.AddMvcFilter<ActionFilter>();
         // 结果拦截器
         services.AddMvcFilter<ResultFilter>();
         // 日志监听特性(拦截器)
-        services.AddMvcFilter<LoggingMonitorAttribute>();
+        services.AddMonitorLogging();
 
         services.AddControllersWithViews()
             .AddAppLocalization()

+ 5 - 0
Admin.NET/Admin.NET.Web.Entry/appsettings.Development.json

@@ -16,6 +16,11 @@
     },
     "Database": {
       "MinimumLevel": "Information"
+    },
+    "Monitor": {
+      "GlobalEnabled": true, // 启用全局拦截日志
+      "IncludeOfMethods": [], // 拦截特定方法,当GlobalEnabled=false有效
+      "ExcludeOfMethods": [] // 排除特定方法,当GlobalEnabled=true有效
     }
   }
 }

+ 5 - 0
Admin.NET/Admin.NET.Web.Entry/appsettings.json

@@ -18,6 +18,11 @@
     },
     "Database": {
       "MinimumLevel": "Information"
+    },
+    "Monitor": {
+      "GlobalEnabled": true, // 启用全局拦截日志
+      "IncludeOfMethods": [], // 拦截特定方法,当GlobalEnabled=false有效
+      "ExcludeOfMethods": [] // 排除特定方法,当GlobalEnabled=true有效
     }
   },
   "AllowedHosts": "*"

+ 8 - 8
Vben2/src/api/sys/admin.ts

@@ -49,14 +49,14 @@ enum Api {
   UpdatePos = '/sysPos/update',
 
   // 日志接口
-  VislogPageList = '/sysVisLog/page',
-  ClearVisLog = '/sysVisLog/clear',
-  OplogPageList = '/sysOpLog/page',
-  ClearOpLog = '/sysOpLog/clear',
-  ExlogPageList = '/sysExLog/page',
-  ClearExLog = '/sysExLog/clear',
-  DifflogPageList = '/sysDiffLog/page',
-  ClearDiffLog = '/sysDiffLog/clear',
+  VislogPageList = '/sysLogVis/page',
+  ClearVisLog = '/sysLogVis/clear',
+  OplogPageList = '/sysLogOp/page',
+  ClearOpLog = '/sysLogOp/clear',
+  ExlogPageList = '/sysLogEx/page',
+  ClearExLog = '/sysLogEx/clear',
+  DifflogPageList = '/sysLogDiff/page',
+  ClearDiffLog = '/sysLogDiff/clear',
 
   // 文件接口
   FilePageList = '/sysFile/page',