热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

AbpVnext/.NetCore获取请求数据与响应数据,进一步方便项目上线后的相关数据分析

AbpVnext.NetCore获取请求数据与响应数据,进一步方便项目上线后的相关数据分析,下面只提供一个思路,数据写到日志文件还是数据库表中,看具体的要求思路主要是系统自带的类似

AbpVnext/.NetCore获取请求数据与响应数据,进一步方便项目上线后的相关数据分析,

下面只提供一个思路,数据写到日志文件还是数据库表中,看具体的要求

思路主要是系统自带的类似Aop的过滤器来实现的

1:测试效果截图

 

 

 2:主要代码截图

 

 

3:主要测试代码

using System;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
namespace GDBS.JasonService.HttpApi.Hosting.Filters
{
public class TestAop01FilterAttribute : IActionFilter
{
public void OnActionExecuted(ActionExecutedContext context)
{
Console.WriteLine(
"===2--OnActionExecuted===");
}
public void OnActionExecuting(ActionExecutingContext context)
{
var requstiOnData= context.ActionArguments;
if (requstionData != null)
{
string jsOnStr= JsonConvert.SerializeObject(requstionData);
Console.WriteLine($
"===1=OnActionExecuting==={jsonStr}===");
}
else
{
Console.WriteLine(
"===1=OnActionExecuting===");
}
}
}
public class TestAop02Filter : IAsyncResultFilter
{
public async Task OnResultExecutionAsync(ResultExecutingContext context, ResultExecutionDelegate next)
{
string cOntrollerName= context.ActionDescriptor.RouteValues["Controller"].ToString();
string actiOnName= context.ActionDescriptor.RouteValues["action"].ToString();
ObjectResult objresult
= context.Result as ObjectResult;
if (objresult != null)
{
string jsOnStr= JsonConvert.SerializeObject(objresult);
Console.WriteLine(
"=====3====cOntrollerName=" + controllerName + ", actiOnName=" + actionName + $"====jsOnStr={jsonStr}======");
}
else
{
Console.WriteLine(
"=====3====cOntrollerName=" + controllerName + ", actiOnName=" + actionName + "==========");
}
await Task.CompletedTask;
}
}
}

 

如有疑问或者错误的地方,请跟帖,本人会第一时间答复以及相互学习,谢谢!个人会不断的上传自己的学习心得!

好了今天就先到这里,下次有时间再更新,如果存在不合理的地方,欢迎大家多多指教留言!!!

我的博客园地址:https://www.cnblogs.com/Fengge518



推荐阅读
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • andr ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 本文深入探讨了 Redis 的两种持久化方式——RDB 快照和 AOF 日志。详细介绍了它们的工作原理、配置方法以及各自的优缺点,帮助读者根据具体需求选择合适的持久化方案。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 该平台旨在为大型企业提供一个高效、灵活且可扩展的分布式微服务架构解决方案。它采用模块化、微服务化和热部署的设计理念,结合当前最先进且无商业限制的主流开源技术,如Spring Cloud、Spring Boot2、MyBatis、OAuth2和Element UI,实现前后端分离的系统管理平台。 ... [详细]
  • VSCode与Gitee集成:项目提交的高效实践
    本文介绍如何利用VSCode内置的Git工具将项目提交到Gitee,简化Git命令的使用,提升代码管理效率。同时分享一些常见的踩坑经验和解决方案。 ... [详细]
  • 本文详细介绍了MicroATX(也称Mini ATX)和MATX主板规格,探讨了它们的结构特点、应用场景及对电脑系统成本和性能的影响。同时,文章还涵盖了相关操作系统的实用技巧,如蓝牙设备图标删除、磁盘管理等。 ... [详细]
  • 0626TP整理二(调试模式,空操作,跨控制器调用,跨方法跳转redirect(),框架语法,创建model模型)...
    一、调试模式(入口文件:index.php)define(APP_DEBUG,true);调试模式define(APP_DEBUG,FALSE);运行模 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 本文详细探讨了网站流量统计中常用的三个关键指标:页面浏览量(PV)、独立访客数(UV)和独立IP数(IP)。通过分析这些指标的定义、计算方法及其应用场景,帮助网站运营者更好地理解用户行为,优化网站内容与用户体验。 ... [详细]
author-avatar
浮尘所惑的猫猫
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有