如何在.Net6webapi中记录每次接口请求的日志.docx

如何在.Net6webapi中记录每次接口请求的日志.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

如何在.Net6webapi中记录每次接口请求的日志

目录为什么在软件设计中一定要有日志系统?如何在.net6webapi中添加日志?1.添加日志组件2.新建SeriLogExtend扩展类型,配置日志格式并注入3.添加RequestLoggingFilter过滤器,用以记录每次请求的日志测试效果

为什么在软件设计中一定要有日志系统?

在软件设计中日志模块是必不可少的一部分,可以帮助开发人员更好的了解程序的运行情况,提高软件的可靠性,安全性和性能,日志通常能帮我们解决如下问题:

调试和故障排查:日志可以记录程序运行时的各种信息,包括错误,异常,警告等,方便开发人员在出现问题时进行调试和故障排查。性能优化:日志可以记录程序的运行时间,资源占用等信息,帮助开发人员进行性能优化。安全审计:日志可以记录用户的操作行为,方便进行安全审计和追踪。统计分析:日志可以记录用户的访问情况,使用习惯等信息,方便进行统计分析和用户行为研究。业务监控:日志可以记录业务数据的变化情况,方便进行业务监控和数据分析。数据还原:日志记录每次请求的请求及响应数据,可以在数据丢失的情况下还原数据。

如何在.net6webapi中添加日志?

1.添加日志组件

.net6有自带的logging组件,还有很多优秀的开源log组件,如NLog,serilog,这里我们使用serilog组件来构建日志模块。

新建.net6,aspnetwebapi项目之后,为其添加如下四个包

dotnetaddpackageSerilog.AspNetCore//核心包

dotnetaddpackageSerilog.Formatting.Compact

dotnetaddSerilog.Sinks.File//提供记录到文件

dotnetaddSerilog.Sinks.MSSqlServer//提供记录到sqlserver

2.新建SeriLogExtend扩展类型,配置日志格式并注入

publicstaticclassSeriLogExtend

publicstaticvoidAddSerilLog(thisConfigureHostBuilderconfigureHostBuilder)

//输出模板

stringoutputTemplate={NewLine}【{Level:u3}】{Timestamp:yyyy-MM-ddHH:mm:ss.fff}+

{NewLine}#Msg#{Message:lj}+

{NewLine}#Pro#{Properties:j}+

{NewLine}#Exc#{Exception}+

newstring(-,50);

//配置Serilog

Log.Logger=newLoggerConfiguration()

.MinimumLevel.Override(Microsoft,LogEventLevel.Warning)//排除Microsoft的日志

.Enrich.FromLogContext()//注册日志上下文

.WriteTo.Console(outputTemplate:outputTemplate)//输出到控制台

.WriteTo.MSSqlServer(Server=.;Database=testdb;UserID=sa;Password=123;TrustServerCertificate=true,sinkOptions:GetSqlServerSinkOptions(),columnOptions:GetColumnOptions())

.WriteTo.Logger(configure=configure//输出到文件

.MinimumLevel.Debug()

.WriteTo.File(//单个日志文件,总日志,所有日志存到这里面

$logs\\log.txt,

rollingInterval:RollingInterval.Day,

outputTemplate:outputTemplate)

.WriteTo.File(//每天生成一个新的日志,按天来存日志

logs\\{Date}-log.txt,//定输出到滚动日志文件中,每天会创建一个新的日志,按天来存日志

retainedFileCountLimit:7,

outputTemplate:outputTemplate

.Cre

文档评论(0)

138****3012 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档