From 6e8e649e88dc83d4a4cbbf018b1caea6a8da4b2d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com>
Date: Fri, 4 Mar 2022 22:05:01 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=20LogActionFilter.cs?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ZR.Admin.WebApi/Filters/LogActionFilter.cs | 114 ---------------------
1 file changed, 114 deletions(-)
delete mode 100644 ZR.Admin.WebApi/Filters/LogActionFilter.cs
diff --git a/ZR.Admin.WebApi/Filters/LogActionFilter.cs b/ZR.Admin.WebApi/Filters/LogActionFilter.cs
deleted file mode 100644
index dc87730..0000000
--- a/ZR.Admin.WebApi/Filters/LogActionFilter.cs
+++ /dev/null
@@ -1,114 +0,0 @@
-using Infrastructure;
-using Infrastructure.Attribute;
-using Infrastructure.Model;
-using IPTools.Core;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.AspNetCore.Mvc.Controllers;
-using Microsoft.AspNetCore.Mvc.Filters;
-using Newtonsoft.Json;
-using NLog;
-using System;
-using System.IO;
-using System.Linq;
-using System.Text;
-using ZR.Admin.WebApi.Extensions;
-using ZR.Model.System;
-using ZR.Service.System.IService;
-
-namespace ZR.Admin.WebApi.Filters
-{
- ///
- /// 记录请求,输出日志
- ///
- public class LogActionFilter : ActionFilterAttribute
- {
- static readonly Logger logger = LogManager.GetCurrentClassLogger();
-
- ///
- /// OnActionExecuted是在Action中的代码执行之后运行的方法。
- ///
- ///
- public override void OnResultExecuted(ResultExecutedContext context)
- {
- if (context.ActionDescriptor is not ControllerActionDescriptor controllerActionDescriptor) return;
-
- //获得注解信息
- LogAttribute logAttribute = GetLogAttribute(controllerActionDescriptor);
- if (logAttribute == null) return;
-
- try
- {
- string method = context.HttpContext.Request.Method.ToUpper();
- // 获取当前的用户
- string userName = context.HttpContext.GetName();
- string jsonResult = string.Empty;
- if (context.Result is ContentResult result && result.ContentType == "application/json")
- {
- jsonResult = result.Content.Replace("\r\n", "").Trim();
- }
- if (context.Result is JsonResult result2)
- {
- jsonResult = result2.Value?.ToString();
- }
- //获取当前执行方法的类名
- //string className = System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name;
- //获取当前成员的名称
- //string methodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
- string controller = context.RouteData.Values["Controller"].ToString();
- string action = context.RouteData.Values["Action"].ToString();
-
- string ip = HttpContextExtension.GetClientUserIp(context.HttpContext);
- var ip_info = IpTool.Search(ip);
-
- SysOperLog sysOperLog = new()
- {
- status = 0,
- operName = userName,
- operIp = ip,
- operUrl = HttpContextExtension.GetRequestUrl(context.HttpContext),
- requestMethod = method,
- jsonResult = jsonResult,
- operLocation = ip_info.Province + " " + ip_info.City,
- method = controller + "." + action + "()",
- //Elapsed = _stopwatch.ElapsedMilliseconds,
- operTime = DateTime.Now
- };
- HttpContextExtension.GetRequestValue(context.HttpContext, sysOperLog);
-
- if (logAttribute != null)
- {
- sysOperLog.title = logAttribute?.Title;
- sysOperLog.businessType = (int)logAttribute?.BusinessType;
- sysOperLog.operParam = logAttribute.IsSaveRequestData ? sysOperLog.operParam : "";
- sysOperLog.jsonResult = logAttribute.IsSaveResponseData ? sysOperLog.jsonResult : "";
- }
- var sysOperLogService = (ISysOperLogService)App.GetRequiredService(typeof(ISysOperLogService));
-
- sysOperLogService.InsertOperlog(sysOperLog);
-
- LogEventInfo ei = new(LogLevel.Info, "GlobalExceptionMiddleware", "");
-
- ei.Properties["status"] = 0;
- ei.Properties["jsonResult"] = !HttpMethods.IsGet(method) ? jsonResult : "";
- ei.Properties["requestParam"] = sysOperLog.operParam;
- ei.Properties["user"] = userName;
-
- logger.Log(ei);
- }
- catch (Exception ex)
- {
- logger.Error(ex, $"记录操作日志出错了#{ex.Message}");
- }
- }
-
- private LogAttribute GetLogAttribute(ControllerActionDescriptor controllerActionDescriptor)
- {
- var attribute = controllerActionDescriptor.MethodInfo.GetCustomAttributes(inherit: true)
- .FirstOrDefault(a => a.GetType().Equals(typeof(LogAttribute)));
-
- return (LogAttribute)attribute;
- }
-
- }
-}
\ No newline at end of file