如何使用Func<T, TResult> 委托实现API日志的记录
发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,这篇文章主要介绍了如何使用Func 委托实现API日志的记录,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。问题平常我们开发web ap
千家信息网最后更新 2025年11月13日如何使用Func<T, TResult> 委托实现API日志的记录
这篇文章主要介绍了如何使用Func
问题
平常我们开发web api的时候,一般是需要记录api的输入输出信息,方便后续排查问题;那么我们一般怎么做的,一般是我们在一个公共地方的写个公共方法控制输入输出。这时候Func
什么是Func
Func
主要代码实现
1、定义委托。
private ApiResult HandleWork(CreateBQoolSyncEventModel syncModel, Funcwork) { //先記錄到 Db Event _innerBQoolSyncEventLogService.Create(syncModel); var result = new ApiResult(); try { _logger.Info($"Call Web Api Start, data:{syncModel.ToJsonString()}"); result = work(); if (!result.Success && !string.IsNullOrEmpty(result.Code) && string.IsNullOrEmpty(result.ErrorMessage)) { result.ErrorMessage = ApiResultCode.ErrorMessages[result.Code]; } } catch (Exception ex) { _logger.Error(ex.ToString()); result.Success = false; if (string.IsNullOrEmpty(result.ErrorMessage)) { result.ErrorMessage = ex.Message; } else { result.ErrorMessage += "; " + ex.Message; } } finally { _logger.Info($"Call Web Api End , result:{result.ToJsonString()}"); //更新 Db event syncModel.SetStatus(result.Success ? BQoolSyncEventStatus.Success : BQoolSyncEventStatus.Failure); _innerBQoolSyncEventLogService.ChangeStatus(syncModel.Id, syncModel.Status, result.ErrorMessage); } return result; }
2、把方法当做参数,传入委托。
[HttpPost] public ApiResult ModuleFeatureSetting(ReviewsApiRequestModel model) { string data = StringTools.AESDecrypt(model.Encrypt); var param = JObject.Parse(data).ToObject(); ApiResult result = HandleWork( new CreateBQoolSyncEventModel(param.Account, BQoolSyncEventType.ModuleFeatureSetting, param) , () => _ReviewsSettingSyncService.ModuleFeatureSetting(param)); return result; } 3、查看日志。
感谢你能够认真阅读完这篇文章,希望小编分享的"如何使用Func
委托
方法
参数
篇文章
封装
日志
问题
输入
输出
平常
不用
也就是
也就是说
代码
价值
信息
兴趣
只有
同时
地方
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
db数据库增加字段
软件开发先设计ui还是ue
互联网金融和金融科技的异同
云平台的网络安全责任
移动软件开发价格
安车数据库密码
ibm流媒体服务器
上海高科技网络技术维修价格
河南郑州网络安全
广元软件开发应用范围
为什么服务器cpu便宜
华硕服务器主板关闭电源管理
手机的网络安全证书没了
日照软件开发培训
奇安信的网络安全工资武汉
莱瑞软件开发有限公司怎么样
轻量级数据库管理器oracle
sql数据库绿色版
速达星光库存管理服务器
2019网络安全方案
软件开发为啥必须计算机专业
保障数据库安全对经济的意义
服务器突然要安全登录不了
奇迹手游可以开服务器吗
网络技术leo
新泰软件开发专业在线咨询
个人一台服务器赚钱
互联网 高科技农业发展前景
福建理工学院计算机网络技术
网络安全岗位职业道德规范