Nlog动态修改日志保存地址

2021年6月左右版本,实测有效

1、配置文件

变量logDirectory代表日志保存地址
  <targets async="true">
    <target name="csv" xsi:type="File" fileName="${gdc:item=logDirectory}/${shortdate}.csv"
            createDirs="true" keepFileOpen="true" autoFlush="false"
            maxArchiveFiles="1000"
            archiveAboveSize="10485760"
            archiveEvery="Day">
      <layout xsi:type="CSVLayout" delimiter="auto" withHeader="true" autoreload  ="true">
        <column name="Time" layout="${date:format=yyyy-MM-dd_HH:mm:ss.fffffff}" quoting="Nothing" />
        <column name="Level" layout="${level}" quoting="Nothing"/>
        <column name="Station" layout="${gdc:item=station}" quoting="Nothing"/>
        <column name="Message" layout="${message}" quoting="Nothing"/>

      </layout>
    </target>
  </targets>

2、修改代码

调用Logger.Info(logStr);前,按以下代码修改,特别是最后一句,特别关键,其他方式更新config都不管用

 NLog.GlobalDiagnosticsContext.Set("logDirectory", @"D:zzD
");
            LogManager.Configuration = LogManager.Configuration;
吾生也有涯,而知也无涯,以有涯随无涯,殆已。
原文地址:https://www.cnblogs.com/kcir/p/15011154.html