我在。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登录到该"下沉"。