【WPF/C#】NLog.Configパッケージが非推奨になってた。NLog.Configファイル作成時の注意点の備忘録【NLog】

【WPF/C#】NLog.Configパッケージが非推奨になってた。NLog.Configファイル作成時の注意点の備忘録【NLog】

久々にVisual StudioにてWPFプロジェクトのパッケージを確認したら、「NLog」と一緒にインストールしていた「NLog.Config」にて「パッケージは非推奨になりました。」との表記が…
「More info」と表記されたのリンク先のページを確認してみます。

リンク先のページを確認する限り、NLog.configはリリースをやめてしまったようです。使用すると予期せぬ動作をすることがあるようです。下の方のREADMEにはPackageReferenceを使用する場合にうまく機能しない旨の記載もあります。
READMEにもあるようにNLog.configパッケージはNLogを使用するうえで必須ではないようですので、NLog.configはアンイストールして使用してみます。

結論

先に結論だけ言いますと、NLog.configパケージはなくとも問題なく動作しました。(ちゃんとプロジェクト内に作成したNLog.configファイル通りに動作しました。)

以下はNLog.configファイルの作成手順および注意点の備忘録です。

NLog.configファイル作成手順と注意点

前提

  • NLogパッケージはNuGetで追加(インストール)済みとします。

手順

以下備忘録も兼ねてNLog.configファイルの作成手順をまとめます。

  1. VisualStudioのソリューションエクスプローラーにて自身のプロジェクトを右クリック > 追加 > 新しい項目 をクリック
    2023-03-13_1.png
  2. 左メニューの全般 > アプリケーション構成ファイルを選択 > 「NLog.config」という名前を入力して「追加」ボタンクリック
    2023-03-13_2.png
  3. プロジェクトにNLog.configファイルが追加されるのでソリューションエクスプローラーで確認
  4. ソリューションエクスプローラーにて「NLog.config」ファイルを選択し、プロパティ欄に表示される情報を以下のように変更する。
  • ビルドアクション:「コンテンツ」
  • 出力ディレクトリにコピー:「新しい場合はコピーする」
    2023-03-13_3.png
    これらを設定しないと、後述のNLog.configの記述をしてもログが出力されません。
  1. NLog.configファイルを記述する
    NLog.configファイルの内容はNLogのGitHubのTutorialページある例を参考に記述すればokです(コピペでok)。

今回私は以下のように記述しました。

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

	<targets>
		<target name="logfile" xsi:type="File" fileName="Logs/log.txt"  layout="${date:format=yyyy-MM-dd HH\:mm\:ss} ${message}"/>
		<target name="logconsole" xsi:type="Console"  layout="${date:format=yyyy-MM-dd HH\:mm\:ss} ${message}"/>
	</targets>

	<rules>
		<logger name="*" minlevel="Trace" writeTo="logconsole" />
		<logger name="*" minlevel="Trace" writeTo="logfile" />
	</rules>
</nlog>

上記の記述だと、デバッグ時にコンソールに出力され、かつLogsディレクトリ配下にlog.txtファイルが作成され、そこにもログが出力されるようになります。
要点としては

  • Logsディレクトリ(フォルダ)が無い場合は自動で作成されます。
  • ログ出力時に既存のlog.txtファイルがあれば、ログはlog.txtファイルに追記する形で出力されます。(どんどん蓄積していく)
  • Logsフォルダはアプリケーションの.exeファイルと同ディレクトリに作成されます。

といった感じになります。

以上です。

Share this post