0

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

  • 请求时间
  • 请求者 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));

我还想记录嵌套事务。

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

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

4

1 回答 1

0

为什么要重新发明轮子,可以使用 nlog 或 microsoft 模式和实践日志库;有人已经在这里详细回答了这个问题设计应用程序范围的日志记录系统的准则是什么?

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

于 2013-08-19T11:18:28.287 回答