Я использую следующий код для настройки Sentry
с Serilog
в моем. Net Базовом консольном приложении:
return new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.Sentry(o =>
{
o.MinimumBreadcrumbLevel = LogEventLevel.Error;
o.MinimumEventLevel = LogEventLevel.Error;
o.Dsn = new Dsn(configuration.GetValue<string>("Sentry:Dsn"));
o.Debug = false;
o.AttachStacktrace = true;
o.SendDefaultPii = true;
})
.CreateLogger();
Теперь я хотел бы переместить всю эту конфигурацию в appsettings.json
файл, потому что мне нужно иметь другую конфигурацию в среде разработки и производства:
Пример:
"Sentry": {
"Dsn": "<dsn>",
"IncludeRequestPayload": true,
"IncludeActivityData": true,
"Debug": false,
"DiagnosticsLevel": "Debug",
"MinimumBreadcrumbLevel": "Debug",
"MinimumEventLevel": "Warning"
},
Можно ли оттуда прочитать всю конфигурацию?
обновление
Я пробую следующую конфигурацию в моем консольном приложении:
static void Main(string[] args)
{
using (SentrySdk.Init("<dsn>"))
{
// my code
}
...
serviceCollection.AddSingleton<ILogger>(s =>
{
return new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.CreateLogger();
});
appsettings:
"Serilog": {
"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.Sentry" ],
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"System": "Warning",
"Sentry": "Information"
}
},
"Enrich": [ "FromLogContext" ],
"WriteTo": [
{
"Name": "Console"
},
{
"Name": "Sentry",
"Args": {
"Dsn": "<dsn>",
"MinimumBreadcrumbLevel": "Info",
"MinimumEventLevel": "Info",
"AttachStackTrace": true,
"Debug": true,
"DiagnosticsLevel": "Info"
}
}
]
Но SentrySdk.Init("<dsn>")
нужен DSN, и он не будет читать его из настроек приложения!
Это так?