【问题标题】:using NLog for the first time第一次使用 NLog
【发布时间】:2013-11-26 08:55:06
【问题描述】:

我第一次在一个可能会运行多年的 winForm 应用程序中使用 NLog。此应用程序还在文本​​文件中记录数据。由于该应用程序将运行多年,因此文本文件将不断增长。这就是为什么我要限制文本文件的大小。假设当达到 10MB 限制时,文本文件开始删除最后的条目以适应新数据。我如何使用 NLog 来做到这一点。

我的 c# 项目中有一些地方

private static Logger logger = LogManager.GetCurrentClassLogger();

logger.Trace("Error:.........."); // and similar msgs

我的 NLog.config 是(它只是将数据记录到文本文件中)

<?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">

  <targets>
    <target name="logfile" xsi:type="File" fileName="${basedir}/file.txt" />
  </targets>

  <rules>
    <logger name="*" minlevel="Info" writeTo="logfile" />
  </rules>
</nlog>

【问题讨论】:

  • 您能否更好地解释您的意思(以及 NLog 在这一切中的作用)?也向我们展示你到目前为止所做的尝试。
  • @varocarbas NLog 用于记录
  • 我想利用这一事件来强调写一个正确的描述是多么重要:从你的问题的当前版本来看,你的意思很清楚。您的原始版本在某种程度上误导了任何了解此工具的人,并且完全误导了从未使用过此工具的人(例如我自己)。至于Nlog可以理解为N次对数(我理解的)。我解释这个的原因是我最近发现了很多“人”,他们对被误解而不是帮助/被帮助更感兴趣......
  • ...我确实认为这是少数,但正是为了让他们永远成为少数,更好地“与他们战斗”并避免这种行为出现在像这样的地方,意味着寻求帮助、适当的知识和高质量的信息;不是为了让不安全、狂热的误解滋长。
  • 致 OP:很抱歉在这里写了所有这些;但我认为一些意识有助于改进 SO,并且对每个人都有好处:提问者越清楚,回答者就越容易提供准确的解决方案,每个人都会更快乐:)

标签: c# logging nlog


【解决方案1】:

您可以将文件大小限制为 10MB,并将最大归档文件数设置为 1:

<target xsi:type="File"
      name="file"
      layout="${longdate}|${level:uppercase=true}|${logger}|${message}"        
      archiveAboveSize="10000000"
      maxArchiveFiles="1"
      archiveFileName="${basedir}/log_archived.txt"
      fileName="log.txt" />

当文件扩展 10MB 时,它将被存档,并且日志记录将继续到新文件。当新文件扩展 10MB 时,它将替换存档文件。因此,您将拥有两个文件 - 当前文件和存档文件。

【讨论】:

  • @varocarbas 看起来他想使用单个文件,这将保持大小小于 10MB,并且在添加新条目时应该删除最旧的条目。但这对于 NLog 是不可能的,所以我给了他两个文件的替代解决方案 - 当前一个和存档一个
  • 感谢您的澄清。当 OP 用代码更新他的问题时,我删除了我的评论。我完全误解了 NLog。
  • 感谢您的回复。所以你的意思是我将有两个文件,一个是我正在编写的文件,一个是存档文件
  • 如果它是TypeInitializationExceptionProgram,那么它会在初始化static 成员时发生(如logger)。所以它很可能与GetCurrentClassLogger 方法有关。你能得到内部异常吗?
  • 请注意,您的根记录器的writeTo="logfile" 属性必须与目标的名称匹配。 @lazy 使用了"file",而你使用的是"logFile"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-03
  • 2021-09-30
  • 1970-01-01
  • 2018-12-17
  • 1970-01-01
相关资源
最近更新 更多