【初心者向け】はじめての ASP.NET Core 作りながら学習(4)- NLog

オウルです。

前回のIntelliCode編の続きです。今回はアプリケーション開発において重要なログです。


ASP.NET Core では、組み込みやサード パーティ製のさまざまなログプロバイダーと連携するログ API がサポートされています。公式ページにはログプロバイダーの一覧がありますよ。「はじめての ASP.NET Core 作りながら学習」では、その中で便利な NLog を使用します。

NLog

NLogとは

NLog is a flexible and free logging platform for various .NET platforms, including .NET standard. NLog makes it easy to write to several targets. (database, file, console) and change the logging configuration on-the-fly.

翻訳

NLogは、.NET standardを含むさまざまな.NETプラットフォーム用の柔軟でフリーのログ記録プラットフォームです。 NLogは、いくつかのターゲットへの書き込みを簡単にします。 (データベース、ファイル、コンソール)ログ記録設定をオンザフライで変更します。

今回はデフォルトの設定でログをファイル出力するように実装します。

NLogパッケージのダウンロード

Visual Studio のメニュー / ツール / NuGet パッケージマネジャー / ソリューションの NuGet パッケージの管理をクリックします。

NLog.Web.AspNetCore パッケージ

NLog パッケージをダウンロードしてインストールします(下の画像①~③)

※③は、作成した MVC プロジェクト、API プロジェクトにチェックON にします。

NLog パッケージ

NLog パッケージをダウンロードしてインストールします(下の画像①~③)

※③は、作成した MVC プロジェクト、API プロジェクトにチェックON にします。

NLog.config の作成

NLog.config は、ログファイルの場所、ログレベルなどを管理する設定ファイルです。次の手順に従って作成します。

作成方法

  1. ソリューションエクスプローラーから MVC プロジェクトを右クリック
  2. 追加 / 新しい項目をクリック
  3. XMLファイルを選択して、名前を NLog.config 、[追加] ボタンをクリック

設定内容

作成した NLog.config に追記します。下記をコピーして貼り付けてください。コメントに「任意のパスに変更します」とある箇所を修正します。またログは日付でローテーションするように設定します。

常にコピーする

ビルドするときに、NLog.config を「常にコピーする」ように設定します。ソリューションエクスプローラーで NLog.config を選択して、下段のプロパティ画面から設定します。

ログ出力

これで Nlog を利用する下準備が出来たので、ここからコードを追加していきます。

Program.cs にコード追加

Program.cs の場所

プロジェクトの直下に Program.cs があります。この Program.cs にコードを追加していきます。

Mainメソッド

Program.cs を見ると、void Main(string[] args) が定義されています。Main メソッドは、一般的にアプリのエントリ ポイントとなります。この Main メソッド にコードを追加します。

CreateWebHostBuilderメソッド

ログプロバイダーを追加しているところです。既定のプロジェクト テンプレートでは、 CreateDefaultBuilder が呼び出されます。デフォルトで3つのログ プロバイダーを追加しています。せっかくなので Git Hub の CreateDefaultBuilder のログ プロバイダーの実装箇所を見てみましょう。

はい、”コンソール”、”デバッグ”、”EventSource (ASP.NET Core 2.2 以降)” の3つのログ プロバイダーが追加されていますね。

今回は ClearProviders を呼び出し、プロバイダーをクリアします。そして、NLogDIDependency Injection)します。

公式サイトやインターネットの情報を見ると、DI、依存関係の挿入などの用語が頻繁にでてきます。DIとは、”Dependency Injection”の略称で ASP.NET Core では DI ソフトウェア設計パターンがサポートされているのです。この DI は、今は意味不明でも大丈夫です。今後の実装に頻出するので焦る必要はありません。コーディングを進めていくうちに、自然と理解できるようになるはずです。

CreateDefaultBuilder はホストを設定するところなので重要です。「はじめての ASP.NET Core 作りながら学習」では、デフォルトのままで動作させるタスクが多いです。唯一、UseStartup を拡張することになるかと思います。

デバックでログ出力を確認する

ここまでで NLog の準備が完了しました。それではデバック実行してログが出力されることを確認してみましょう。次の3ファイルが出力されていれば OK です。

  • internal-nlog
  • nlog-all-[year]-[month]-[day]
  • nlog-own-[year]-[month]-[day]

nlog-all-[year]-[month]-[day] を見ると、先頭行にログレベルが DEBUG で Start Main とあるはずです。これは、Program.cs の Main メソッドに追加したコードですね。これでログ出力は完了です。次回は、コントローラーとビューの作成を紹介したいと思います。ついに UI (画面)に突入です!また、コントローラー作成時に今回のNLog を DI してコントローラーで使用できるようにします。

↓ フロントサイドは 流行りの TypeScript を使ってみようと思ったら、おすすめな開発環境です。
「はじめての ASP.NET Core」シリーズ
  1. 作りながら学習
  2. プロジェクト作成
  3. AI 支援 IntelliCode
  4. NLog
  5. MVC(1)
  6. MVC(2)レイアウト
「【初心者向け】ASP.NET Core Identity」シリーズ
  1. ASP.NET Core Identity の2要素認証と Identity を使わない Cookie 認証 – 概要編
  2. ASP.NET Core Identity 構成編
↓ おさえておこう .Net Core 3.0 のポイント。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA