Можно ли указать путь к файлу конфигурации NLog? - PullRequest
1 голос
/ 02 августа 2020

Потому что я использую Azure DevOps в моем развертывании и у меня есть 3 среды (dev, staging, prod). Каждый из них использует действительно конкретное c определение NLog.

Я хотел бы создать 3 файла NLog: Nlog.dev.config, NLog.staging.config и NLog.prod.config и сообщить NLog, какой из них использовать . Я также могу просто сохранить Nlog в папке, которая не заменяется инструментом развертывания. Как бы то ни было, мне нужно указать путь к моему файлу конфигурации.

https://github.com/nlog/NLog/wiki/Configuration-file

Ответы [ 2 ]

1 голос
/ 02 августа 2020

Загрузка конфигурации NLog из файла NLog будет автоматически сканировать файлы конфигурации, но иногда платформа требует явной загрузки конфигурации, например:

NLog.LogManager.Configuration = new NLog.Config.XmlLoggingConfiguration("nlog.config");

Спасибо, Джо

0 голосов
/ 02 августа 2020

Да, в зависимости от ситуации есть несколько способов:

Из кода

LogManager.Configuration = new XmlLoggingConfiguration(@"c:\path\to\NLog.config")

Или из кода при использовании Microsoft.Extensions.Logging (например, asp. net core)

public static void Main(string[] args)
{
    var logger = NLog.Web.NLogBuilder.ConfigureNLog(@"c:\path\to\NLog.config").GetCurrentClassLogger();
    ... // Etc, see https://github.com/NLog/NLog/wiki/Getting-started-with-ASP.NET-Core-3

Или из конфигурации вы можете создать файл nlog.config с элементом include:

<?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"
      autoReload="true"
      internalLogLevel="Info"
      internalLogFile="c:\temp\internal-nlog.txt">

    <include file="nlog-common.config" />
</nlog>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...