Serilog,将日志插入到多租户应用程序中的特定数据库中



我在。net core 5中编写了一个WebAPI,它根据通过JWT传递的键连接到正确的数据库。

--> Key = A dbconnection string "Data Source=1.1.1.1;Database=A;Integrated Security=SSPI;MultipleActiveResultSets=true"
--> Key = B dbconnection string "Data Source=1.1.1.1;Database=B;Integrated Security=SSPI;MultipleActiveResultSets=true"
--> Key = B dbconnection string "Data Source=1.1.1.1;Database=C;Integrated Security=SSPI;MultipleActiveResultSets=true"

等等…

连接存储在另一个数据库中,该数据库用于一般配置,包括各种客户端的连接字符串。

现在我们要添加serilog,它将日志插入到各个数据库中。但是我不知道如何告诉Serilog有动态连接字符串,此时只能插入一个连接字符串。

是否有可能在进入日志之前检索Serilog的连接字符串?

听起来您需要创建Serilog的ILogEventSink的自定义实现。它定义了一个方法void Emit(LogEvent logEvent),您可以自己实现该方法以将日志发送到所需的目的地。

一旦完成,并且您正在设置LoggerConfiguration,您将调用myLoggerConfiguration.Sink(mySink, minLogLevel);来告诉Serilog登录到该"下沉"。

最新更新