c# Razor .net6にて、NLogでのログ出力

.net6になってから、start.csが廃止されて、program.csも中身が変わったこともあって、
サイトを調べても情報がないので、2時間ほど、挑戦して出るようになったので、ここにメモっておく

環境
visual studio2022
razor
.net6
Nlog 4.7.13
Nlog.Web.AspNetCore 4.14.0

1.NuGetでNLogをインストール
visual studio2022のツールからNlogとNlog.Web.AspNetCoreの最新をインストールする

2.nlog.configを用意する


とりあえず、転がってたのをそのまま使います。

参考はこれ

https://github.com/NLog/NLog/wiki/Getting-started-with-ASP.NET-Core-2


3.Program.csを変更する

.net6でプロジェクトを新規作成すると、デフォルトでbuilderが定義されているので、追加で、builderに設定を加えます。

var app = builder.Build();よりも前に記載しないと実行時エラーになります

cs0618で警告が出ますが、新しい書き方だと、.net6じゃない気がします

4.appsettings.jsonを少し変更する

これもとりあえず、転がってたのをそのまま使います。

参考は上記記載と同じgithub

https://github.com/NLog/NLog/wiki/Getting-started-with-ASP.NET-Core-2

5.Index.cshtml.csに出力するコードを試しに記載する

6.実際に動かして、出力されるのかを確認

info-2022-02-03.logの中身

infoレベルの中に、infoとerrorの両方出るのですね。errorしか使わないと思いますが。

azure上で動かしたときに、どうなるのかも見てみたいです

今回作成したプロジェクト一式

https://www.6sense.co.jp/dl/nlog_test.zip

2022/4/1追記 追加修正情報があったので、別途公開