NLog не выводит текстовый файл - PullRequest
2 голосов
/ 13 февраля 2020

Я скачал и установил пакет 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;
}

В коде приложения каждый класс получает свой собственный экземпляр, как рекомендуется в учебном пособии:

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

Я считаю, что это не запись текстового файла в указанный каталог. Я прочитал несколько советов по устранению неполадок, но не могу найти файл "NLog.config".

1 Ответ

1 голос
/ 13 февраля 2020

Используете ли вы. net ядро? На обоих ядрах. net и. net вам нужно то, что здесь указано для nlog:

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

Создать nlog.config (нижний регистр все) файл в root вашего проекта.

Так что вы не узнаете, потому что вы его не создали. Есть еще кое-что сделать.

В вашей конфигурации кода вам нужно где-то выполнить функцию. Вы звоните из Startup.cs или любой другой точки входа в зависимости от платформы?

...