CSFramework.WebApi后端框架Log日志配置详解


1. 消息监听日志:
用于监听所有客户端的请求并写入日志数据库,包括请求的IP、请求时间、请求方法(POST/GET)、URI地址、StatusCode状态码等信息。
以下是具体代码实现:
C# Code:
/// <summary>
/// 监听WebAPI服务器所有请求.
/// </summary>
public class RequestListenHandler : DelegatingHandler
{
protected ILog2Database _log;
public RequestListenHandler(ILog2Database log)
{
_log = log;
}
protected override System.Threading.Tasks.Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
{
//注意:若Request.Method=POST,不可读取Request.Body流(Stream)信息,一旦读取,会销毁Stream对象。
//Method=GET,读取RequestUri
//控制台显示请求的URI信息
Console.WriteLine("收到请求:" + request.RequestUri);
//调用WebAPI控制器接口完毕,才执行下面的代码
return base.SendAsync(request, cancellationToken).ContinueWith((task) =>
{
//添加日志
_log.Write(request, task.Result as HttpResponseMessage);
return task.Result;
});
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
/// 监听WebAPI服务器所有请求.
/// </summary>
public class RequestListenHandler : DelegatingHandler
{
protected ILog2Database _log;
public RequestListenHandler(ILog2Database log)
{
_log = log;
}
protected override System.Threading.Tasks.Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
{
//注意:若Request.Method=POST,不可读取Request.Body流(Stream)信息,一旦读取,会销毁Stream对象。
//Method=GET,读取RequestUri
//控制台显示请求的URI信息
Console.WriteLine("收到请求:" + request.RequestUri);
//调用WebAPI控制器接口完毕,才执行下面的代码
return base.SendAsync(request, cancellationToken).ContinueWith((task) =>
{
//添加日志
_log.Write(request, task.Result as HttpResponseMessage);
return task.Result;
});
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
app.config配置, Yes/No。
XML Code:
<!--监听接口访问(Yes/No)-->
<add key="RequestListen" value="Yes"/>
//来源:C/S框架网 | www.csframework.com | QQ:23404761
<add key="RequestListen" value="Yes"/>
//来源:C/S框架网 | www.csframework.com | QQ:23404761
判断app.config配置value=Yes,则添加到Web API中的消息处理程序(Message Handler)
C# Code:
//监听接口访问
if (WebApiSettings.Current.AllowRequestListen)
config.MessageHandlers.Add(new RequestListenHandler(log));
//来源:C/S框架网 | www.csframework.com | QQ:23404761
if (WebApiSettings.Current.AllowRequestListen)
config.MessageHandlers.Add(new RequestListenHandler(log));
//来源:C/S框架网 | www.csframework.com | QQ:23404761
日志信息:

2. WebApi接口访问日志:
用于记录用户访问的具体接口信息,比如:api/do/post,api/user/file/upload等,
包括请求时间、日志类型、接口编码、具体方法名(OP),请求的Body内容(请求的JSON数据)等。
在CommandHandler.ProcessCommand方法内提交日志信息到日志数据库。
C# Code:
if (command.Log != null)
command.Log.Write(command.HttpRequest, command.UserRequest, command.ClientData);
//来源:C/S框架网 | www.csframework.com | QQ:23404761
command.Log.Write(command.HttpRequest, command.UserRequest, command.ClientData);
//来源:C/S框架网 | www.csframework.com | QQ:23404761
日志信息:

ASP.NET WebApi快速开发框架|APP后端框架-标准版V1.0






扫一扫加微信


版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网