C#web api跟踪每个请求一个
在C#Web API中是否有一种简单的方法来启用跟踪,但每个请求只有一个条目?这个条目应该包含关于请求的所有可用信息,也可能包含关于响应的信息(如果可能的话) 覆盖默认跟踪似乎会生成比实际有用的更多的条目,我只希望每个请求有一个条目 编辑: 这就是我们迄今为止所做的:C#web api跟踪每个请求一个,c#,asp.net-web-api,trace,C#,Asp.net Web Api,Trace,在C#Web API中是否有一种简单的方法来启用跟踪,但每个请求只有一个条目?这个条目应该包含关于请求的所有可用信息,也可能包含关于响应的信息(如果可能的话) 覆盖默认跟踪似乎会生成比实际有用的更多的条目,我只希望每个请求有一个条目 编辑: 这就是我们迄今为止所做的: 在WebAPIConfig->Register中,添加了以下行: Replace(typeof(ITraceWriter),新的MyAppTraceWriter()) MyAppTraceWriter类具有以下成员和函数。_tr
- 在WebAPIConfig->Register中,添加了以下行: Replace(typeof(ITraceWriter),新的MyAppTraceWriter())
- MyAppTraceWriter类具有以下成员和函数。_tracer对象是一个Log4Net对象,它只输出到一个txt文件:
public static ILog _tracer; public void Trace(HttpRequestMessage request, string category, TraceLevel level, Action<TraceRecord> traceAction) { _tracer = Logger.GetTracer(); var rec = new TraceRecord(request, category, level); traceAction(rec); WriteTrace(rec); } protected void WriteTrace(TraceRecord rec) { var message = string.Format("{0};{1};{2};{3}", rec.Category, rec.Operator, rec.Operation, rec.Message); System.Diagnostics.Trace.WriteLine(message, rec.Category); _tracer.Info(message); }
你试过什么不起作用的?这个问题太模糊了,任何人都无法给出一个好的答案。不过,日志记录或跟踪非常简单,因此如果您能提供有关问题的更多信息,肯定会有人提供帮助。您可能会发现这一点很有用:。我将编辑我的问题,以澄清我迄今为止所做的工作。查看本文:2014-07-16 01:30:24,384 [7] INFO DevTracer [(null)] - System.Web.Http.Request;;;http://server/api/v1/courses/24744/teachers/0000000711 2014-07-16 01:30:24,386 [7] INFO DevTracer [(null)] - System.Web.Http.MessageHandlers;CorsMessageHandler;SendAsync; 2014-07-16 01:30:24,397 [7] INFO DevTracer [(null)] - System.Web.Http.Controllers;DefaultHttpControllerSelector;SelectController;Route='MS_SubRoutes:System.Web.Http.Routing.IHttpRouteData[]' 2014-07-16 01:30:24,420 [7] INFO DevTracer [(null)] - System.Web.Http.Controllers;DefaultHttpControllerSelector;SelectController;Courses 2014-07-16 01:30:24,442 [7] INFO DevTracer [(null)] - System.Web.Http.Controllers;HttpControllerDescriptor;CreateController; 2014-07-16 01:30:24,466 [7] INFO DevTracer [(null)] - System.Web.Http.Controllers;DefaultHttpControllerActivator;Create; 2014-07-16 01:30:24,520 [7] INFO DevTracer [(null)] - System.Web.Http.Controllers;DefaultHttpControllerActivator;Create;API.Controllers.CoursesController 2014-07-16 01:30:24,544 [7] INFO DevTracer [(null)] - System.Web.Http.Controllers;HttpControllerDescriptor;CreateController;API.Controllers.CoursesController 2014-07-16 01:30:24,548 [7] INFO DevTracer [(null)] - System.Web.Http.Controllers;CoursesController;ExecuteAsync; 2014-07-16 01:30:24,559 [7] INFO DevTracer [(null)] - System.Web.Http.Action;ApiControllerActionSelector;SelectAction; 2014-07-16 01:30:24,581 [7] INFO DevTracer [(null)] - System.Web.Http.Action;ApiControllerActionSelector;SelectAction;Selected action 'RemoveTeacherFromCourse(Int32 courseInstanceID, String ssn)' 2014-07-16 01:30:24,614 [7] INFO DevTracer [(null)] - System.Web.Http.ModelBinding;HttpActionBinding;ExecuteBindingAsync; 2014-07-16 01:30:24,620 [7] INFO DevTracer [(null)] - System.Web.Http.ModelBinding;ModelBinderParameterBinding;ExecuteBindingAsync;Binding parameter 'courseInstanceID' 2014-07-16 01:30:24,664 [7] INFO DevTracer [(null)] - System.Web.Http.ModelBinding;ModelBinderParameterBinding;ExecuteBindingAsync;Parameter 'courseInstanceID' bound to the value '24744' 2014-07-16 01:30:24,685 [7] INFO DevTracer [(null)] - System.Web.Http.ModelBinding;ModelBinderParameterBinding;ExecuteBindingAsync;Binding parameter 'ssn' 2014-07-16 01:30:24,689 [7] INFO DevTracer [(null)] - System.Web.Http.ModelBinding;ModelBinderParameterBinding;ExecuteBindingAsync;Parameter 'ssn' bound to the value '0000000711' 2014-07-16 01:30:24,692 [7] INFO DevTracer [(null)] - System.Web.Http.ModelBinding;HttpActionBinding;ExecuteBindingAsync;Model state is valid. Values: courseInstanceID=24744, ssn=0000000711 2014-07-16 01:30:24,715 [7] INFO DevTracer [(null)] - System.Web.Http.Action;ApiControllerActionInvoker;InvokeActionAsync;Action='RemoveTeacherFromCourse(courseInstanceID=24744, ssn=0000000711)' 2014-07-16 01:30:24,718 [7] INFO DevTracer [(null)] - System.Web.Http.Action;ReflectedHttpActionDescriptor;ExecuteAsync;Invoking action 'RemoveTeacherFromCourse(courseInstanceID=24744, ssn=0000000711)' 2014-07-16 01:30:25,338 [7] INFO DevTracer [(null)] - System.Web.Http.Action;ReflectedHttpActionDescriptor;ExecuteAsync;Action returned 'System.Web.Http.Results.OkResult' 2014-07-16 01:30:25,340 [7] INFO DevTracer [(null)] - System.Web.Http.Action;ApiControllerActionInvoker;InvokeActionAsync; 2014-07-16 01:30:25,341 [7] INFO DevTracer [(null)] - System.Web.Http.Controllers;CoursesController;ExecuteAsync; 2014-07-16 01:30:25,371 [7] INFO DevTracer [(null)] - System.Web.Http.Cors;AttributeBasedPolicyProviderFactory;GetCorsPolicyProvider;CorsRequestContext: 'Origin: http://server, HttpMethod: DELETE, IsPreflight: False, Host: server, AccessControlRequestMethod: null, RequestUri: http://server/api/v1/courses/24744/teachers/0000000711, AccessControlRequestHeaders: {}' 2014-07-16 01:30:25,375 [7] INFO DevTracer [(null)] - System.Web.Http.Cors;AttributeBasedPolicyProviderFactory;GetCorsPolicyProvider;CorsPolicyProvider selected: 'System.Web.Http.Cors.EnableCorsAttribute' 2014-07-16 01:30:25,377 [7] INFO DevTracer [(null)] - System.Web.Http.Cors;EnableCorsAttribute;GetCorsPolicyAsync;CorsRequestContext: 'Origin: http://server, HttpMethod: DELETE, IsPreflight: False, Host: server, AccessControlRequestMethod: null, RequestUri: http://server/api/v1/courses/24744/teachers/0000000711, AccessControlRequestHeaders: {}' 2014-07-16 01:30:25,382 [7] INFO DevTracer [(null)] - System.Web.Http.Cors;EnableCorsAttribute;GetCorsPolicyAsync;CorsPolicy selected: 'AllowAnyHeader: True, AllowAnyMethod: True, AllowAnyOrigin: True, PreflightMaxAge: null, SupportsCredentials: False, Origins: {}, Methods: {}, Headers: {}, ExposedHeaders: {}' 2014-07-16 01:30:25,384 [7] INFO DevTracer [(null)] - System.Web.Http.Cors;CorsEngine;EvaluatePolicy; 2014-07-16 01:30:25,389 [7] INFO DevTracer [(null)] - System.Web.Http.Cors;CorsEngine;EvaluatePolicy;CorsResult returned: 'IsValid: True, AllowCredentials: False, PreflightMaxAge: null, AllowOrigin: *, AllowExposedHeaders: {}, AllowHeaders: {}, AllowMethods: {}, ErrorMessages: {}' 2014-07-16 01:30:25,392 [7] INFO DevTracer [(null)] - System.Web.Http.MessageHandlers;CorsMessageHandler;SendAsync; 2014-07-16 01:30:25,393 [7] INFO DevTracer [(null)] - System.Web.Http.Request;;;Content-type='none', content-length=unknown 2014-07-16 01:30:25,403 [7] INFO DevTracer [(null)] - System.Web.Http.Controllers;CoursesController;Dispose; 2014-07-16 01:30:25,404 [7] INFO DevTracer [(null)] - System.Web.Http.Controllers;CoursesController;Dispose;