更改 NLog 变量 (C#)

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

我想知道如何检查NLog.config文件中deviceId变量的值。现在,C#代码中的deviceId变量和NLog.config文件中的deviceId变量是两个不同的实体,但它们应该是同一个变量。

С# 代码:

        static void Main(string[] args)
    {
        Logger log = LogManager.GetCurrentClassLogger();

        // log only Message 2
        //int res;
        //res = Sum(2, 5);
        //log.Debug($"{res}");

        int deviceId;
        deviceId = 1;
        //log.Debug("Message " + $"{deviceId}");
        log.Debug("");
        deviceId = 2;
        //log.Debug("Message " + $"{deviceId}");
        log.Debug("");
        deviceId = 3;
        //log.Debug("Message " + $"{deviceId}");
        log.Debug("");
    }

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"
      xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
      autoReload="true"
      throwExceptions="false"
      internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">

  <variable name="myvar" value="myvalue"/>
  
  <targets>
    <target xsi:type="File" name="file" fileName="${basedir}/logs/${shortdate}.log" />
  </targets>

    <rules>
        <logger name="*" minlevel="Trace" writeTo="file" />
        <filters>
            <when condition="'${deviceId}' == '2'" action="Log" />
        </filters>
    </rules>
</nlog>
c# conditional-statements nlog
1个回答
0
投票

代码怎么样:

LogManager.Configuration.Variables["deviceid"] = deviceid

并在配置中

<when condition=""equals(${deviceId}, '1')"" action="Log" />
© www.soinside.com 2019 - 2024. All rights reserved.