C# 如何配置Serilog以使用log4net接收器?

C# 如何配置Serilog以使用log4net接收器?,c#,log4net,log4net-configuration,serilog,C#,Log4net,Log4net Configuration,Serilog,到目前为止,我使用的是在应用程序启动时配置的log4net记录器: log4net.GlobalContext.Properties["LogRoot"] = @"../logs"; var log4netConfigFile = AppDomain.CurrentDomain.BaseDirectory + @"\log4net.config"; log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(log4netConfi

到目前为止,我使用的是在应用程序启动时配置的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日志,但由Serilog控制,该Serilog有一个专用的log4net接收器。因此,我保留了上面的代码,并编写了以下附加代码:

var logger = new Serilog.LoggerConfiguration()
    .WriteTo.ColoredConsole()
    .WriteTo.Log4Net()
    .CreateLogger();
我看到日志文件是在应用程序启动时创建的,但只要我使用Serilog logger,就不再写入日志文件


Serilog的log4net接收器不应该使用log4net配置吗?

这看起来可能是个bug;设置
SelfLog.Out=Console.Error
应显示抛出的任何异常…不,添加此代码行时未显示任何错误。我们已修复了1.3.35中可能是此问题根源的错误,升级应可解决此问题。谢谢,我会试试的。不,没用。我已经写了一个小应用程序来重现这个问题。我现在就发。