これまで、アプリケーションの開始時に構成された log4net ロガーを使用していました。
log4net.GlobalContext.Properties["LogRoot"] = @"../logs";
var log4netConfigFile = AppDomain.CurrentDomain.BaseDirectory + @"\log4net.config";
log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(log4netConfigFile));
上記のコードは、構成ファイル log4net.config を使用してログが ../logs フォルダーに書き込まれるようにします。
現在、Serilog の使用を開始しており、現在の log4net ロギングを維持したいと考えていますが、専用の log4net シンクを持つ Serilog から制御されています。そこで、上記のコードをそのままにして、次の追加コードを書きました。
var logger = new Serilog.LoggerConfiguration()
.WriteTo.ColoredConsole()
.WriteTo.Log4Net()
.CreateLogger();
アプリケーションの起動時にログ ファイルが作成されますが、Serilog ロガーを使用している限り、ログ ファイルは書き込まれません。
Serilog は、その log4net シンクで log4net 構成を使用すべきではありませんか?