我有一个正在使用 Serilog 的控制台应用程序。我正在尝试将日志记录注入我的服务库,但我从未看到日志消息。似乎当我单步执行代码时,即使我正在创建一个 Singleton LoggerFactory,该库也在创建工厂的一个新实例。
控制台应用程序
ILoggerFactory loggerFactory = new LoggerFactory();
loggerFactory.AddSerilog(GetLoggerConfiguration());
_loggerIdentity = loggerFactory.CreateLogger<WorkerBroker>();
IServiceCollection services = new ServiceCollection();
services.TryAddSingleton<ILoggerFactory, LoggerFactory>();
_provider = services.BuildServiceProvider();
// Inject my service
var service = ActivatorUtilities.CreateInstance<MyService>(_provider);
发生注入的服务的构造函数(在库中)
public MyService(ILoggerFactory loggerFactory)
{
_logger = loggerFactory.CreateLogger<WebCreditService>();
}
稍后在服务中,我将尝试记录一些内容,但日志中没有显示任何内容,但我确实看到了来自控制台应用程序的消息。