より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

Log4netを卒業して、NLogへと

社内で新しいデスクトップアプリケーションを開発することになったのですが、ログ出力はどうしようかと考えていたとき思い出しました。

Log4netは開発休止宣言

代替手段はどうするかということでNLogを選ぶことにしました。

Serilogもありますが、GitHubのStar数などを見て、決めました。長い物に巻かれようと。

設定をコードで宣言

設定ファイルでログの設定を行うことも出来ますが、私はもっぱらコードで書いてしまいたいことが多いです。

github.com

プロダクトのコードとしては、デバッグログ出力有効にしてもらって調査ということもできるので設定ファイルでいいかもしれませんね。

ただ、コードの方が手軽です。

github.com

上記を参考に

            var config = new NLog.Config.LoggingConfiguration();
            var fileTarget = new NLog.Targets.FileTarget()
            {
                FileName = Path.Combine(logDirectoryPath, "${date:format=yyyyMMdd}.log"),
                ArchiveEvery = FileArchivePeriod.Day,
                ArchiveNumbering = ArchiveNumberingMode.Rolling,
                ArchiveDateFormat = "yyyyMMdd",
                Layout = "${longdate} : ${level} : ${message} ${exception}"
            };
            config.AddRule(LogLevel.Debug, LogLevel.Fatal, fileTarget);
            NLog.LogManager.Configuration = config;

こんな感じかなと。

出力は以下を参考にすればいいです。そんなに癖はないかと。

github.com

参考記事

mk3008net.hatenablog.com

qiita.com