我为SeriLog编写了一个接收器,该接收器将日志写入OracleDB。该接收器位于其他类库中,并且宿主项目引用该类库。
由于某些原因,SeriLog不会触发OracleSink配置。我知道可以在主机项目的appsettings.json
文件中进行配置,但是我不想使用SeriLog配置加载配置文件。
还有其他方法可以告诉Program.Main()
中的LoggerConfiguration哪里保存自定义接收器的程序集?
public sealed class Program
{
public static int Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
#if DEBUG
.MinimumLevel.Debug()
#else
.MinimumLevel.Information()
#endif
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.RollingFile("Logs/Unilin-Shipping-{Date}.txt")
//.WriteTo.OracleSink("connectionString","storedProcedure"); => Doesn't find OracleSink
.CreateLogger();
try
{
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseSerilog()
.Build()
.Run();
return 0;
}
catch (Exception ex)
{
Log.Fatal(ex, "Host terminated unexpectedly");
return 1;
}
finally
{
Log.CloseAndFlush();
}
}
}