SeriLog-单独项目中的OracleDB定制接收器

时间:2018-11-13 12:28:48

标签: c# asp.net-core-2.0 serilog sink

我为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();
        }
    }
}

0 个答案:

没有答案