记录应用程序块 - 优先级,类别值

时间:2011-04-11 20:37:36

标签: logging enterprise-library

我正在寻找有关企业库的日志记录应用程序块的使用以及应该使用的优先级,类别和严重性值的最佳实践。

说到Severity,答案很简单:使用其中一个 System.Diagnostics.TraceEventType 枚举。

但Priority是一个int,Category是一个字符串数组。因此,我不确定这两个值的最佳实践是什么......

以下是我在分类中提出的两种方案:

  1. 使用类别
  2. 的班级名称
  3. 将预定义类别用于除应用程序之外的其他类型的消息(例如:异常,信息等)。
  4. 优势1:它可以让您很好地控制您想要在任何给定点记录哪些类。 (指定类名称和严重性以控制记录的内容及其记录位置。)

    1的缺点:它可能变得难以处理,因为您可能有100个类别,并且没有简单的方法来设置配置以捕获应用程序中的所有异常。

    优势2:与1完全相反,因此可以很容易地指定您希望所有异常消息的去向,并且可以轻松地关闭所有不必要信息的记录

    2的缺点:它不像(1)那样可配置。

    在优先级和类别方面寻找其他想法。

1 个答案:

答案 0 :(得分:2)

  

但优先级是int,而Category是   一串字符串。所以我不确定   什么是最好的做法   来到这两个价值观......

就优先级而言,我建议不要使用优先级,除非您有特定的要求根据优先级进行记录。如果你没有明确需要优先权,那么会引起更多令人头痛的问题。

  

这是我来的两个方案   当涉及到类别:

     
      
  1. 使用类别
  2. 的班级名称   
  3. 将预定义类别用于您以外的其他类型的邮件   来自您的申请(例如:例外,   信息等......)。
  4.   

根据我的经验,上述两种选择是常见的选择。 但为什么选择?因为(如你所说)你可以拥有多个类别,所以没有理由选择其中一个。如果您愿意,您可以拥有多个类别,并且只启用您当前感兴趣的类别。

例如,除了将类名(MyCompany.BusinessLogic.Processor)添加为类别之外,您还可以将命名空间或程序集名称添加为类别(MyCompany.BusinessLogic)。

您可以考虑添加的其他类别是功能区域或应用程序层的类别。例如“DataAccess”或“UI”。

我认为如果你使用列表中应该涵盖大多数情况的两种方法。启用“例外”,如果您需要更精细的日志记录,则可以为特定类打开信息或全局启用信息。