はい.NetCore2.2ではNlogとNlogを用いる.MongoログをMongoDBに書き込みます

1836 ワード

1.NuGetパッケージマネージャまたはパッケージマネージャコンソールコマンドNlogとNlogをインストールする.Mongo
Install-Package NLog.Web.AspNetCore
Install-Package NLog.Mongo

2.appsettingsを構成する.jsonファイルNlog項
"NLog": {
    "throwConfigExceptions": true,
    "targets": {
      "logfile": {
        "type": "File",
        "fileName": "./log/nlog-${shortdate}.log"
      },
      "logconsole": {
        "type": "Console"
      },
      "logmongo":{
        "type":"Mongo",
        "connectionString":"mongodb://192.168.111.2/NLOG",
        "collectionName":"SysErrorLog",
        "cappedCollectionSize":"26214400"
      }
    },
    "extensions": {
      "NLog.Mongo": {
          "assembly": "NLog.Mongo"
      }
    },
    "rules": [
      {
        "logger": "*",
        "minLevel": "Debug",
        "writeTo": "logmongo"
      },
      {
        "logger": "*",
        "minLevel": "Warn",
        "writeTo": "logfile"
      },
      {
        "logger": "*",
        "minLevel": "Debug",
        "writeTo": "logconsole"
      }
    ]
  }

3.Startupを修正する.csファイルConfigureServices、次のコードを追加
            NLog.LogManager.Configuration = new NLogLoggingConfiguration(Configuration.GetSection("NLog"));
            services.AddLogging(loggingBuilder =>
            {
                loggingBuilder.ClearProviders();
                loggingBuilder.SetMinimumLevel(LogLevel.Trace);
                loggingBuilder.AddNLog(Configuration);
            });