[英]How to resolve dependency in serilog custom sink?
我有多租戶系統,我需要根據租戶 ID 登錄不同的數據庫。 我已經創建了自定義接收器,但我無法解決自定義接收器中的依賴項 class
CustomLogSink.cs:
public class CustomLogSink : ILogEventSink
{
public CustomLogSink(IWorkSpaceProvider provider)
{
}
public void Emit(LogEvent logEvent)
{
}
}
程序.cs:
public class Program
{
public static void Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Information()
.CreateLogger();
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args)
{
return Host.CreateDefaultBuilder(args)
.UseSerilog((context, cfg) =>
{
cfg.WriteTo.Sink(new CustomLogSink());
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
}
我如何解決 CustomLogSink.cs 中的依賴項?
您需要像這樣將 CustomLogSink 添加到注入 model 中:
services.AddTransient<ILogEventSink, CustomLogSink>();
這個接收器將由 Serilog 自動加載,你不需要 WriteTo。 但是請注意可能的循環參考,就像我來到這里一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.