Встраивание NLog в app.config для приложения WPF - PullRequest
1 голос
/ 25 марта 2020

Я добавил NLog в разрабатываемое приложение WPF, используя файл NLog.config. Я добавил несколько сообщений журнала, которые были введены в файл журнала, когда я запустил приложение, все работало нормально.

Затем я решил вместо этого встроить NLog в файл app.config, что в соответствии с документацией возможно. Однако это не сработало вообще, файл журнала не был создан, а внутренняя регистрация не работала и на NLog. Для тестирования я решил создать пустое приложение WPF и встроить NLog в файл app.config с очень простой целью и правилом. Он ведет себя одинаково, никакой регистрации не происходит, а также нет внутренней регистрации в NLog. Когда я смотрю на мой файл WpfApp.dll.config, он использует файл app.config.

Я не уверен, что я делаю здесь неправильно, почему он не работает?

Отредактировано, чтобы добавить: У меня последняя версия NLog NuGet (4.7.0), и у меня нет файла NLog.config в этом приложении.

App.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>
  </configSections>
  <nlog internalLogFile="C:\intlog.txt" internalLogLevel="Trace" throwexceptions="true">
    <targets>
      <target name="logfile" type="file" fileName="mylogfile.txt" />
    </targets>
    <rules>
      <logger name="*" minlevel="Trace" writeTo="logfile" />
    </rules>
  </nlog>
</configuration>

MainWindow.xaml.cs

namespace WpfApp2
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            LogManager.ThrowExceptions = true;
            Logger mylogger = LogManager.GetLogger("foo");
            mylogger.Info("Program started");
            InitializeComponent();

        }
    }
}
...