社内で新しいデスクトップアプリケーションを開発することになったのですが、ログ出力はどうしようかと考えていたとき思い出しました。
Log4netは開発休止宣言
代替手段はどうするかということでNLogを選ぶことにしました。
Serilogもありますが、GitHubのStar数などを見て、決めました。長い物に巻かれようと。
設定をコードで宣言
設定ファイルでログの設定を行うことも出来ますが、私はもっぱらコードで書いてしまいたいことが多いです。
プロダクトのコードとしては、デバッグログ出力有効にしてもらって調査ということもできるので設定ファイルでいいかもしれませんね。
ただ、コードの方が手軽です。
上記を参考に
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;
こんな感じかなと。
出力は以下を参考にすればいいです。そんなに癖はないかと。