我如何通过 Nlog 将信息记录到一个单独的文件中?

How can I log information to a dividual file by Nlog?

我要将一些 IActionResult 中的 Spider 信息记录到带有日期的单独文件中。

例如:
C:\20210317spider.txt
C:\20210318spider.txt
C:\20210319spider.txt

我不想使用Logger.LogInformation等方法将所有信息记录到一个文件中。

我怎样才能做到这一点?谢谢。

您可以在 NLog FileTarget 的 FileName-Layout 中使用 ${shortdate} layoutrenderer:

<nlog>
  <targets>
    <target type="file" name="spiderFile" fileName="C:/${shortdate}spider.txt" />
  </targets>
  <rules>
    <logger name="Spider" writeTo="spiderFile" final="true" />
  </rules>
</nlog>

另请参阅可与 NLog 布局一起使用的 NLog Tutorial and the list of available layoutrenders

然后你可以用 Microsoft ILoggerFactory:

public class MyClass
{
     private readonly ILogger _spiderLogger;

     public MyClass(ILoggerFactory loggerFactory)
     {
         _spiderLogger = loggerFactory.CreateLogger("Spider");
         _spiderLogger.LogInformation("Hello little spider");
     }
}