2017-10-07 43 views
1

我在我的API項目中創建了自定義Sentry接收器。如何從appsetings.json讀取asp.net核心2.0中自定義serilog接收器的配置

public class SentrySink : ILogEventSink {...} 

我還創建了一個擴展方法用於我的水槽,這樣我可以通過日誌配置連接我水槽 。

public static LoggerConfiguration Sentry(this LoggerSinkConfiguration loggerConfiguration, 
     string dsn, 
     string release = null, 
     string environment = null, 
     LogEventLevel restrictedToMinimumLevel = LogEventLevel.Information, 
     IFormatProvider formatProvider = null) 
    {...} 

當我使用

Log.Logger = new LoggerConfiguration() 
       .ReadFrom.Configuration(configuration) 
       .WriteTo.Sentry(configuration["Sentry:Dsn"], restrictedToMinimumLevel: Serilog.Events.LogEventLevel.Error) 

一切正常,並登錄的是哨兵。

但是,當我設置的配置appsetting.json作爲

"WriteTo": [ 
    { "Name": "Sentry" }, ... 

沒有LoggerConfiguration定義配置日誌的不發送到崗哨。

我是否需要實現更多的東西才能使用appsetting.json中的configs? 謝謝。

回答

0

您至少需要包含"Args": {"dsn": ...},因爲dsn參數不是可選的。

您可能還需要一個"Using": ["YourAssemblyContainingSink"]語句來確保找到配置方法,具體取決於部署目標,並檢查接收器組件是否已複製到項目的輸出目錄。

相關問題