NLog 不输出文本文件

NLog not outputting text file

我已经下载并安装了 NuGet 包 NLog。我按照教程,选择通过代码配置,如下:

public static void ConfigureLogger()
{
    var config = new NLog.Config.LoggingConfiguration();

    // target where to log to
    string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
    var logfile = new NLog.Targets.FileTarget("logfile") { FileName = path + @"\log.txt" };
    var logconsole = new NLog.Targets.ConsoleTarget("logconsole");

    // rules for mapping loggers to targets
    // minimum and maximum log levels for logging targets
    config.AddRule(NLog.LogLevel.Info, NLog.LogLevel.Fatal, logconsole);
    config.AddRule(NLog.LogLevel.Info, NLog.LogLevel.Fatal, logfile);

    // apply config
    NLog.LogManager.Configuration = config;
}

在应用程序代码中,每个 class 都有自己的实例,如教程中所建议:

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

我发现它没有将文本文件写入指定目录。我已阅读一些故障排除建议,但找不到文件 "NLog.config".

您使用的是 .net 核心吗?在 .net 和 .net 核心上,您需要此处为 nlog 引用的内容:

https://github.com/NLog/NLog/wiki/Getting-started-with-ASP.NET-Core-3

Create nlog.config (lowercase all) file in the root of your project.

所以你没有发现,因为你没有创造它。还有很多事情要做。

在您的代码配置中,您需要在某处执行函数。根据平台,您是从 Startup.cs 还是从任何其他入口点调用它?