Я устраняю проблему, из-за которой NLog не загружает свою конфигурацию из App.config в консольном приложении .NET Core 2.2.
При вызове NLog.LogManager.GetCurrentClassLogger()
результирующий объект остается пустым и не имеет целей ведения журнала или другой конфигурации.
<appSettings>
элементы конфигурации можно найти без проблем, используя обычный метод: ConfigurationManager.AppSettings["settingKey"]
.
В процессе выяснения этого я позвонил ConfigurationManager.GetSection("nlog")
, чтобы просто посмотретьесли бы я мог получить настройки вручную. Это вызвало следующее исключение:
System.Configuration.ConfigurationErrorsException:
'An error occurred creating the configuration section handler for nlog:
Could not load type 'NLog.Config.ConfigSectionHandler' from assembly 'NLog'
Весь app.config
из моего примера приложения выглядит следующим образом:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>
</configSections>
<appSettings>
<add key="value1" value="TEST1"/>
<add key="value2" value="TEST2"/>
</appSettings>
<nlog>
<targets>
<target name="logfile" type="File" fileName="${basedir}/logs/${shortdate}.log" layout="${longdate} ${uppercase:${level}} ${message}" />
<target name="logconsole" type="Console" />
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="logconsole"/>
<logger name="*" minlevel="Info" writeTo="logfile"/>
</rules>
</nlog>
</configuration>
NLog - это версия 4.6.7 из nuget.