10yroの開発日記

株式会社10yro(トイロ)のエンジニアが書いています

C# NLogを使ってログ出力する

今回はC#でログ出力する方法です。
以前は自前でクラスを作成することもあったかと思いますが、最近では自作することはほぼないかと思います。
今回はNLogというライブラリを使ってログ出力したいと思います。

nlog-project.org

事前準備1

Visual StudioのNuGetでNLog.Configをインストールします。
NLog.Configをインストールすれば関連するライブラリがインストールされます。

f:id:nack10:20220131083043p:plain

事前準備2

インストールすると、プロジェクト直下に「NLog.config」というログ出力の設定ファイルが作成されます。
しかし、これはリンクで読み取り専用となっており修正できません。
おそらくデフォルトで利用する場合はこのリンクの状態で利用して、もし設定を変更したい場合は上記ファイルをコピーして設定してということだと思います。

設定を変更したいので、コピーして使います。
右クリックメニューから「このアイテムのフォルダーを開く」をクリックします。

f:id:nack10:20220131085112p:plain

エクスプローラーが開くので、NLog.configをコピーします。

f:id:nack10:20220131085214p:plain

Visual Studio上で元々のリンクされたNLog.configを削除した後に、上記でコピーしたNLog.configをプロジェクト配下にコピーします。

f:id:nack10:20220131085307p:plain

出力ディレクトリにコピーは「新しい場合はコピーする」に変更します。

f:id:nack10:20220131190003p:plain

これで修正が可能となります。

設定

NLog.configに設定を追加します。
今回は以下の設定を追加しました。

  • targetsタグ内にファイル出力の設定を追加
  • targetには日本語で出力可能にするために encoding="utf-8" と writeBom="true" を設定
  • rulesタグ内に上記で追加したファイル出力の設定を追加

修正前

修正後

ログ出力

以下の様にログ出力の処理を追加して実行してみます。

f:id:nack10:20220131190121p:plain

bin\Debug配下にlogsディレクトリが生成され、本日日付でログファイルが出力されました。

f:id:nack10:20220131190233p:plain

f:id:nack10:20220131190342p:plain

設定等は色々とあるので、詳細は公式Wikiを参照してください。

github.com