2

我刚开始使用 NLog 和一般的日志记录,但我发现自己可能过度滥用它。我正在记录每一行代码,其中大部分是 Info 消息,但在我的 try catch 场景中,或者如果某些内容为空,我将记录一个错误。什么是最好的记录?

我将其用于具有 2 个项目的 WPF 解决方案(1 个是 UI,另一个是类库)

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <!-- make sure to set 'Copy To Output Directory' option for this file -->
  <!-- go to http://nlog-project.org/wiki/Configuration_file for more information -->

  <targets>
        <target name="errorLog" xsi:type="File" fileName="${basedir}/error.txt" />
      <target name="infoLog" xsi:type="File" fileName="${basedir}/info.txt" />
    </targets>

    <rules>
        <logger name="*" level="Error" writeTo="errorLog" />
      <logger name="*" level="Info" writeTo="infoLog" />
    </rules>
</nlog>
4

1 回答 1

3

NLog 支持日志级别的概念。

使用低于 Error 的级别记录任何可能有助于跟踪程序为何执行此操作的内容是一个好主意。部署应用程序时,在 NLog.config 中将所需的日志记录级别设置为错误。

http://nlog-project.org/wiki/Log_Levels

如果用户遇到意外问题,您可以将日志级别更改为例如 Info 并获取有关正在发生的事情的更多信息。

话虽如此,每一行代码几乎肯定是矫枉过正。如果你走到那个极端,你的代码就会被日志记录弄得乱七八糟。

专注于应用程序中可能出现问题的地方。

我个人的偏好是:

  • 使用 Trace 级别来指示代码的流向(进入一个方法,退出一个方法)
  • 使用信息级别指示关键计算中的进度/步骤
  • 使用错误级别来指示应用程序可以从中恢复的意外情况
  • 使用致命级别表示发生了非常糟糕的事情并且应用程序即将关闭。
于 2012-10-03T17:20:54.837 回答