【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ファイルの作成手順をまとめます。
- VisualStudioのソリューションエクスプローラーにて自身のプロジェクトを右クリック > 追加 > 新しい項目 をクリック
- 左メニューの全般 > アプリケーション構成ファイルを選択 > 「NLog.config」という名前を入力して「追加」ボタンクリック
- プロジェクトにNLog.configファイルが追加されるのでソリューションエクスプローラーで確認
- ソリューションエクスプローラーにて「NLog.config」ファイルを選択し、プロパティ欄に表示される情報を以下のように変更する。
- ビルドアクション:「コンテンツ」
- 出力ディレクトリにコピー:「新しい場合はコピーする」
これらを設定しないと、後述のNLog.configの記述をしてもログが出力されません。
- 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