C# 公共类库中的Serilog设置-ASP.NET Core 2
我有几个ASP.NET Core 2应用程序,我想为它们设置带有各种接收器的Serilog。 为了不必在每个项目中都设置Serilog,我在一个单独的类库中有一个单独的类BaseProgram,我的其他程序从中继承(我省略了brivety的一些代码) 我的程序类看起来像:C# 公共类库中的Serilog设置-ASP.NET Core 2,c#,asp.net-core,serilog,C#,Asp.net Core,Serilog,我有几个ASP.NET Core 2应用程序,我想为它们设置带有各种接收器的Serilog。 为了不必在每个项目中都设置Serilog,我在一个单独的类库中有一个单独的类BaseProgram,我的其他程序从中继承(我省略了brivety的一些代码) 我的程序类看起来像: public class Program : BaseProgram { public static void Main(string args[]) { MainWrapper(() =>
public class Program : BaseProgram
{
public static void Main(string args[])
{
MainWrapper(() => BuildWebHost(args).Run());
}
}
现在,我的问题是,如果我只在公共库(滚动文件Appender)中添加Serilog接收器,并在appsettings.json中添加该接收器的配置,则不会加载该接收器
另一方面,如果我将滚动文件Appender添加到ASP.NET核心项目中(并且不做任何更改),那么一切都会按预期进行。
我注意到,在第一种情况下,程序集Serilog.Sinks.File和Serilog.Sinks.RollingFile不会复制到ASP.NET核心应用程序的bin文件夹中。我已经强制加载了这些程序集,但仍然不起作用
现在,我已经在类库中以编程方式设置了滚动文件appender,它运行良好。我还可以在ASP.NET核心应用程序中添加额外的接收器,它们仍然可以工作
有什么想法吗?
谢谢
public class Program : BaseProgram
{
public static void Main(string args[])
{
MainWrapper(() => BuildWebHost(args).Run());
}
}