日志设计方法

时间:2013-03-13 11:55:39

标签: c# oop logging

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

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

我也想记录嵌套的事务。

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

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

1 个答案:

答案 0 :(得分:0)

为什么要重新发明轮子,你可以使用nlog或microsoft模式和做法记录库;有人已在此处详细解答了此问题What are the guidelines for designing an application-wide logging system?

我经常使用logstash,但你似乎是一个c#密集型工作。