SeriLog - Custom Sink для OracleDB в отдельном проекте - PullRequest
0 голосов
/ 13 ноября 2018

Я написал приемник для SeriLog, который записывает логи в OracleDB.Этот приемник находится в другой библиотеке классов, и хост-проект ссылается на эту библиотеку классов.

По какой-то причине SeriLog не запускает конфигурацию OracleSink.Я понимаю, что есть возможность настроить это в файле appsettings.json хост-проекта, но я не хочу загружать свой файл конфигурации с конфигурациями SeriLog.

Есть ли другой способ сообщитьКонфигурация Logger в Program.Main(), где находится сборка, в которой хранится пользовательский приемник?

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