.net - 在应用程序中记录多少,多少是太多?

标签 .net logging log4net complexity-theory

只是想知道有多少人在他们的应用程序中登录???

我见过这个:

"I typically like to use the ERROR log level to log any exceptions that are caught by the application. I will use the INFO log level as a "first level" debugging scheme to show whenever I enter or exit a method. From there I use the DEBUG log level to trace detailed information. The FATAL log level is used for any exceptions that I have failed to catch in my web based applications."



其中有这个代码示例:
Public Class LogSample

   Private Shared ReadOnly Log As log4net.ILog = log4net.LogManager.GetLogger(GetType(LogSample))

   Public Function AddNumbers(ByVal Number1 As Integer, ByVal Number2 As Integer) As Integer

      Dim intResults As Integer

      Log.Info("Starting AddNumbers Method...")
      Log.Debug("Number1 Specified: " & Number1)
      Log.Debug("Number2 Specified: " & Number2)

      intResults = Number1 + Number2

      Try

         intResults = Number1 + Number2

      Catch ex As Exception

         Log.Error("Error Adding Nubmers.", ex)

      End Try

      Log.Info("AddNumbers Method Complete.")

      Return intResults

   End Function

End Class 

但这似乎给方法增加了很多。例如,一个通常可能是 7 行代码的类突然变成了 12 行代码。该方法也失去了一些清晰性和简单性。

但话说回来,进行日志记录的好处可能是好的。例如生产系统中的性能监控,追踪生产中的异常错误(并不是说您会一直打开所有这些日志记录。

因此,我想知道人们在做什么?
干杯
安东尼

最佳答案

它更像是编程的艺术方面。

您不想记录所有内容。但是您会想要记录系统中最关键的部分。

只需从广义上考虑您的程序,并尝试确定您需要哪些信息,以防生产中出现问题。

首先,应用程序的所有核心逻辑模块都应该具有日志记录功能。装饰部件,例如UI/动画不应该需要记录。

恕我直言,记录每个方法的进入/退出是多余的,而且还会产生噪音,尤其是因为您可以嵌入堆栈跟踪。

为了提高性能,请使用分析器。

关于.net - 在应用程序中记录多少,多少是太多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/231903/

相关文章:

c# - 如何在 WinForms 自定义控件的控件设计器属性中添加组合框?

c# - 获取完整类属性 "Tree"名称作为字符串

logging - golang 的日志框架,具有适合生产的旋转日志文件和过滤日志级别

nhibernate - 使用 NHibernate 时无法让 log4net 输出任何内容

c# - 如何在 C# 中获得对枚举类型的全局访问权限?

.net - 将命令分配给 EventSetter

保证日志在午夜轮换的 Java 日志记录框架

tomcat - 设置日志级别以调试 Tomcat 中的 Web 应用程序

c# - 正则表达式替换重复捕获

c# - 从 Powershell 调用的 DLL 使用相对于 Powershell 安装目录的路径。我怎样才能将它设置为其他东西?