Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 日志设计方法_C#_Oop_Logging - Fatal编程技术网

C# 日志设计方法

C# 日志设计方法,c#,oop,logging,C#,Oop,Logging,日志记录对我来说总是一场噩梦!现在我必须为代理系统再次实现它。 在这个代理应用程序中,一些系统要求代理系统调用一些其他服务。 我要记录的是 请求时间 请求者IP 请求参数为XML 请求的服务名称 请求的服务方法 响应时间 作为XML的响应数据 响应消息(如果发生任何异常,将作为消息记录) 我考虑在我的方法中附加两行: // Log Request Task.Factory.StartNew(() => Logger.Log(RequestParameters.ToXML(),Assem

日志记录对我来说总是一场噩梦!现在我必须为代理系统再次实现它。 在这个代理应用程序中,一些系统要求代理系统调用一些其他服务。 我要记录的是

  • 请求时间
  • 请求者IP
  • 请求参数为XML
  • 请求的服务名称
  • 请求的服务方法
  • 响应时间
  • 作为XML的响应数据
  • 响应消息(如果发生任何异常,将作为消息记录)
我考虑在我的方法中附加两行:

// Log Request
Task.Factory.StartNew(() => Logger.Log(RequestParameters.ToXML(),Assembly.GetCallingAssembly().FullName, MethodBase.GetCurrentMethod().Name, DateTime.Now));

// Invoke requested service and get response

// Log Response
Task.Factory.StartNew(() => Logger.Log(Response.ToXML(), DateTime.Now));
我还想记录嵌套事务

假设一个事务包含一个请求和一个响应。交易可能包含许多其他内部交易。当我收到一个请求时,我应该注册一个事务,并为它插入一个请求,稍后,当收到响应时,我应该更新事务响应。请注意,我正在尝试存储请求和响应关系,以便更好地跟踪


如何将此日志记录过程安全地添加到方法中?我想限制开发人员在所有方法中实现这种日志系统,需要一些方法体的接口或继承之类的东西。我可以按属性来做吗?那怎么办

为什么要重新发明轮子,您可以使用nlog或microsoft模式和实践日志库;这里已经有人详细回答了这个问题


我经常使用logstash,但您的工作似乎是c密集型的。

为什么不使用IIS日志功能?它可以记录关于请求的所有细节,并且有一个好的工具,你可以提取你需要的信息,以备实际需要,通常情况下这是很少见的。。。。或者使用现有的日志框架?我不确定你到底在开发什么,但我已经使用了自定义属性、IServiceBehaviour和IParameterInspector在WCF服务中实现了自定义loggin。我还使用web.config中的system.diagnostics将关键错误记录到tracelistener文件中。使用日志作为其基本示例。我听说这很好,但我是一个java(aspectj)人,所以请恕我直言:)@PetarRepac:那么,是否有机会为应用程序管理员提供一个可读的控制台,以便他轻松跟踪系统通信?或者IIS日志是具有复杂报告功能的复杂文本日志?