5.6K Star 11.4K Fork 4K

GVPdotNET China / Furion

 / 详情

📝监听日志记录的接口返回值可配置是否记录或截断

已完成
创建于  
2022-09-02 16:26

功能描述

一个项目中可能有非常多的接口的返回数据非常庞大,全量的记录会导致日志文件巨大,如果是控制台输出也会造成控制台显示的数据严重滞后。
所以需要一个 只记录入参不记录返回值根据自定义的阈值只记录部分返回值 的功能。

功能清单

  • 支持通过配置文件控制 Methods 是否记录返回值功能
  • 支持通过特性控制 Methods 是否记录返回值功能
  • 支持通过配置文件设置触发截断的阈值
  • 支持通过特性设置触发截断的阈值
  • 支持只截断中间的数据,保留前后数据(如:设置 阈值:500,则前后各保留 250 个字符),因为一个 RESTfulResult ,可能我们只想截断 Data 中的内容,保留 Errors Succeeded Extras StatusCode 中的内容。

期望效果

{
  "Logging": {
    "Monitor": {
      "GlobalEnabled": false, // 是否启用全局拦截,默认 `false`
      "XXXXXXXMethods": [], // 指定不显示返回值的特定方法,当 GlobalEnabled: true 有效
      "阈值": 0, // 允许打印返回值时,大于多少字符就截断,0 为全量输出
      "BahLogLevel": "Information" // 配置 Oops.Oh 和 Oops.Bah 业务日志输出级别,默认 Information
    }
  }
}

public class TestLoggerServices : IDynamicApiController
{
    [不打印返回值]
    public PersonDto GetPerson(int id)
    {
        return new PersonDto
        {
            Id = id
        };
    }

    // 只保留前五百字符
    [LoggingMonitor(500)]
    public PersonDto GetPerson(int id)
    {
        return new PersonDto
        {
            Id = id
        };
    }
}

评论 (9)

taoran 创建了任务
taoran 修改了描述
taoran 修改了描述
taoran 修改了描述
taoran 修改了描述
展开全部操作日志

写的相当的好,我先一个个的来。

已经实现两个:

输入图片说明

输入图片说明

百小僧 修改了描述
百小僧 修改了描述

功能已全部实现

百小僧 通过dotnetchina/Furion Pull Request !549任务状态待办的 修改为已完成

感谢,这效率没谁了 :kissing_closed_eyes:

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
974299 monksoul 1578937227 948538 taomail 1662108593
C#
1
https://gitee.com/dotnetchina/Furion.git
git@gitee.com:dotnetchina/Furion.git
dotnetchina
Furion
Furion

搜索帮助

14c37bed 8189591 565d56ea 8189591