【问题标题】:Some basic logging with NLog使用 NLog 进行一些基本的日志记录
【发布时间】:2013-11-26 18:33:28
【问题描述】:

我在使用 NLog 时遇到了一些非常简单的基本问题。我有配置文件

<?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 xsi:type="File"
      name="file"
      layout="${longdate}|${level:uppercase=true}|${logger}|${message}"
      archiveAboveSize="4000"
      maxArchiveFiles="1"
      archiveFileName="${basedir}/log_archived.txt"
      fileName="log.txt" />
  </targets>

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

在我的 c# 项目中,我正在这样做

class Program
    {
        private static Logger logger = LogManager.GetCurrentClassLogger();

        static void Main(string[] args)
        {

            for (int i = 0; i < 100; i++)
            {
                logger.Fatal("Sample fatal error message::  {0}", i);
            }

log.txt 文件是

2013-11-26 11:10:06.7166|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 0 2013-11-26 11:10:06.7366|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 1 2013-11-26 11:10:06.7366|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 2 2013-11-26 11:10:06.7366|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 3 2013-11-26 11:10:06.7366|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 4 2013-11-26 11:10:06.7366|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 5 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 6 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 7 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 8 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 9 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 10 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 11 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 12 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 13 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 14 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 15 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 16 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 17 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 18 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 19 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 20 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 21 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 22 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 23 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 24 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 25 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 26 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 27 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 28 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 29 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 30 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 31 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 32 2013-11-26 11:10:06.7466|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 33 2013-11-26 11:10:06.7666|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 34 2013-11-26 11:10:06.7666|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 35 2013-11-26 11:10:06.7666|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 36 2013-11-26 11:10:06.7666|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 37 2013-11-26 11:10:06.7666|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 38 2013-11-26 11:10:06.7666|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 39 2013-11-26 11:10:06.7666|FATAL|ConsoleApplication1.Program|示例致命错误消息:: 40

(大小超过 4K)

现在根据预期结果,我应该有一个包含旧数据的存档文件和 log.txt 文件,其中包含 100、99,98 中的最新条目......但是当 log.txt 文件的大小超过上述限制。记录停止并且没有创建新的存档文件。

【问题讨论】:

    标签: c# nlog


    【解决方案1】:

    您的代码对我来说很好用。程序运行后,我在应用程序目录中有两个文件:

    • log.txt 条目 86-99 大小为 1302 字节
    • log_archived.txt 条目 43-85 大小为 3999 字节

    确保您正在查看正确的目录。还要确保您在应用程序目录中有正确的NLog.config

    【讨论】:

    • 再次感谢您的宝贵时间。它让我发疯,我不知道我最后的错误是什么
    • @user2968369 打开您的应用程序文件夹,检查NLog.config 是否存在并验证其设置是否正确。然后运行exe文件(不是来自Visual Studio!)并验证是否会出现日志文件
    • 是的,我遵循了这些步骤。再次只有一个文件 log.txt :(
    • @user2968369 我建议你删除日志文件并重新运行你的应用程序
    • 我删除了。然后我再次通过单击 project->Add->New ITem->NLog->Empty Nlog Configuration File 添加新的日志文件。然后将 Copy 更改为 Output Directory-> Copy always 所以现在有两个日志文件,一个在 project.cs 所在的位置,一个在 .exe 文件所在的位置。仍在形成相同的一个文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多