Nlog.Mongo получить соединение с appsetting.json - PullRequest
0 голосов
/ 17 декабря 2018

Я использую приложение .net core 2.0 и использую NLog Mongo для ведения журнала.Есть способ получить строку подключения к NLog.Mongo из моего файла appsettings?Документация говорит, что я могу указать имя соединения (имя_соединения) для получения из файла конфигурации (https://github.com/loresoft/NLog.Mongo).

Мой appsettings.Development.json имеет следующее:

  "DatabaseSettings": {
    "ConnectionString": "mongodb://localhost:27017",
    "Database": "myDbName",
    "IsSSL": false
  }

nlog.config

<target xsi:type="Mongo"
    name="mongoDefault"
    connectionName="DatabaseSettings"
    cappedCollectionSize="26214400">
  <property name="ThreadID" layout="${threadid}" bsonType="Int32" />
  <property name="ThreadName" layout="${threadname}" />
  <property name="ProcessID" layout="${processid}" bsonType="Int32" />
  <property name="ProcessName" layout="${processname:fullName=true}" />
  <property name="UserName" layout="${windows-identity}" />
</target>

Когда я запускаю приложение, я получаю сообщение об ошибке:

NLog.NLogConfigurationException: не удается разрешить MongoDB ConnectionString. Убедитесь, что свойство ConnectionString установлено

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Альтернатива, если вы не можете обновить свой пакет NLog.Mongo, до решения @Rolf Kristensen я использовал этот код на Startup.cs (ConfigureServices)

string conn = Configuration.GetSection("DatabaseSettings").GetValue<string>("ConnectionString");
string dbName = Configuration.GetSection("DatabaseSettings").GetValue<string>("Database");
var config = NLog.LogManager.Configuration;
var dbTarget = (NLog.Mongo.MongoTarget)config.FindTargetByName("mongoDefault");
dbTarget.ConnectionString = conn;
dbTarget.DatabaseName = dbName;
NLog.LogManager.ReconfigExistingLoggers();
0 голосов
/ 19 декабря 2018

Попробуйте еще раз, используя NLog.Mongo ver.4.6.0.68

https://www.nuget.org/packages/NLog.Mongo/

Должен включать следующий PR:

https://github.com/loresoft/NLog.Mongo/pull/22

Обновление NLog.Extension.Logging ver.1.4.0

С NLog.Extension.Logging ver.1.4.0, теперь вы можете использовать ${configsetting}

См. Также: https://github.com/NLog/NLog/wiki/ConfigSetting-Layout-Renderer

...