のasp.netコアでNLogアプリケーション

  簡単なログラックボックス、永続的なログは、照会する場合は、アクセスすることは容易ではない、実行しているselfhostときAsp.netコア、内蔵のログは、コンソール出力で、あります。

  NLogは、この論文ではasp.net下部コアNLogを使用する方法を示し、.NETプラットフォームの下にログフレームワークに特化した、無料のロギングフレームワークです。

  まず、Nuget NLog.Web.AspNetCore NLog.Extensions.Loggingと2つのライブラリーを装着することもできます。

  publishOptionsに「nlog.configノード」を追加し、project.jsonを変更

  "publishOptions":{

  "含めます":[

  "wwwrootの"、

  "** / *。CSHTML"、

  "appsettings.json"、

  "web.configファイル"、

  "nlog.config"

  ]

  }

  StartUp.csに追加

  公共のボイドConfigureServices(IServiceCollectionサービス)

  {

  //フレームワークサービスを追加します。

  services.AddMvc();

  // NLog.webにHttpContextAccessorを注入

  services.AddSingleton();

  ......

  }

  公共の無効設定(IApplicationBuilderアプリ、IHostingEnvironment ENV、ILoggerFactory loggerFactory)

  {

  //コアフレームワークを.NETにNLogを追加

  loggerFactory.AddNLog();

  // NLogミドルウェアを追加

  app.AddNLogWeb();

  // NLogプロファイルを指定します

  env.ConfigureNLog( "nlog.config");

  ......

  }

  HomeController.csカスタムログです

  静的ロガーロガー= LogManager.GetCurrentClassLogger()。

  公共IActionResultインデックス()

  {

  Logger.Info(「一般的な情報ログ」)。

  Logger.Debug(「デバッグログ」)。

  Logger.Error(「エラーログ」)。

  Logger.Fatal( "異常ログ");

  Logger.Warn(「アラート・ログ」)。

  Logger.Trace(「トレースログ」)。

  Logger.Log(NLog.LogLevel.Warn、 "ログ日志");

  試します

  {

  int型私= 0;

  = 10 / iがあります。

  }

  キャッチ(例外EXC)

  {

  //例外ログ

  Logger.Fatal(EXC、exc.Message)。

  }

  ビューを返します();

  }

  NLog.configは、2つのログ・レコードはCである:\ tempに、1は、すべてのログのNLog機能により、独自のログレコードです。ログライブラリ例外場合は、Cに生成されます:\内部nlog.txt下\ tempに、

  xmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance"

  自動再= "true" を

  internalLogLevelは= "警告します"

  internalLogFile = "C:\ TEMP \内部nlog.txt">

  レイアウト= "$ {longdate} | $ {イベントプロパティ:商品= EventId.Id} | $ {ロガー} | $ {大文字:$ {レベル}} | $ {メッセージ} $ {例外}" />

  レイアウト= "$ {longdate} | $ {イベントプロパティ:商品= EventId.Id} | $ {ロガー} | $ {大文字:$ {レベル}} | $ {メッセージ} $ {例外} | URL:$ {ASPNET -request-URL} |アクション:$ {ASPNET-MVC-アクション}」/>

  レイアウトデータは、彼らのニーズに応じて、ログデータを保存することを選択し、ログの$の内容に書き込まれます。

  あなたは、データベースのログを保存したい場合は、NLog.configを置くことができ、次のように改正:

  xmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance"

  自動再= "true" を

  internalLogLevelは= "警告します"

  internalLogFile = "C:\ TEMP \内部nlog.txt">

  INSERT INTO [DBO]。[NLog](

  [MachineNameに】

  [サイト名]、

  [ログイン]、

  [レベル]、無錫良い男性と病院http://www.zzchnk.com/

  [ユーザー名]、

  [メッセージ]、

  [ロガー]、

  [プロパティ]、

  [ホスト]、

  [コントローラ]、

  [アクション]、

  [URL]、

  [呼び出し場所】

  [例外]

  )VALUES(

  @machineName、

  @サイト名、

  @logged、

  @レベル、

  @Username、

  @メッセージ、

  @logger、

  @properties、

  @ホスト、

  @コントローラ、

  @アクション、

  @url、

  @callSite、

  @例外

  );

おすすめ

転載: www.cnblogs.com/djw12333/p/10937420.html