C#-NLog为同一呼叫记录多行

问题描述 投票:0回答:1

我开始使用NLog,我想将每一行记录到日志文件和控制台中以进行调试。当我尝试记录日志时,控制台和日志文件中的每个日志操作都会打印2-3次,而不是每个目标中打印一次。

我在NLog.config文件中配置了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 name="logfile" xsi:type="File" fileName="C:\Users\user\source\repos\TaskSchedulerConsole\Log.txt" />
    <target name="logconsole" xsi:type="Console" />
  </targets>

  <rules>
    <logger name="*" minlevel="Trace" writeTo="logfile, logconsole" />
    <logger name="*" minlevel="Debug" writeTo="logfile, logconsole" />
    <logger name="*" minlevel="Info" writeTo="logfile, logconsole" />
    <logger name="*" minlevel="Warn" writeTo="logfile, logconsole" />
    <logger name="*" minlevel="Error" writeTo="logfile, logconsole" />
    <logger name="*" minlevel="Fatal" writeTo="logfile, logconsole" />

  </rules>
</nlog>

在每个课程中,我创建了一个静态记录器:

private static readonly NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger();

[三重记录示例:Program.cs:

            try
            {
                Logger.Info("Program Started.");

            }
            catch(Exception ex)
            {
                Logger.Info(ex, "Something went wrong...");
            }
            finally
            {
                Logger.Info("Program Finished.");
                NLog.LogManager.Shutdown();

            }

在控制台和日志文件中输出:

2020-05-14 11:49:44.7542|INFO|TaskSchedulerConsole.Program|Program Started.
2020-05-14 11:49:44.7542|INFO|TaskSchedulerConsole.Program|Program Started.
2020-05-14 11:49:44.7542|INFO|TaskSchedulerConsole.Program|Program Started.
2020-05-14 11:49:44.8315|INFO|TaskSchedulerConsole.Program|Program Finished.
2020-05-14 11:49:44.8315|INFO|TaskSchedulerConsole.Program|Program Finished.
2020-05-14 11:49:44.8315|INFO|TaskSchedulerConsole.Program|Program Finished.

提前感谢大家,希望有人可以帮助我理解问题。

c# logging nlog
1个回答
0
投票

这是正确的行为。

您为日志配置了六个规则,这六个规则中的三个将在您的代码中触发。 (跟踪/调试/信息)

© www.soinside.com 2019 - 2024. All rights reserved.