appsettings.jsonファイルの値をバインドするApplicationConfigurationSettingsクラスがあります。 LoggerのLogLevelの値を除いて、すべての値を取得できます。おそらく、Loggingエントリのjson形式でサブレベルが存在するためです。appsettingsからPOCO Asp.Net Core 2へのロギング設定のバインド
私はそれが原因であると確信している
services.Configure<ApplicationConfigurationSettings>(Configuration.GetSection("ApplicationConfiguration"));
appsettings.json(簡潔にするため取り外した部品)
{
"ApplicationConfiguration": {
"ConnectionStrings": {
"DevelopmentConnection": "Server=(localdb)\\mssqllocaldb;Database=TestingConfigurationNetCoreTwo_Development;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
},
"ApplicationIconUrls": {
"MaleUserIcon": "https://machineryrestorations.blob.core.windows.net/publicfiles/images/BestMaleUser_32x32.png",
"FemaleUserIcon": "https://machineryrestorations.blob.core.windows.net/publicfiles/images/BestFemaleUser_32x32"
},
"ApplicationInfo": {
"VersionNumber": "1.0.0",
"Author": "Jimbo",
"ApplicationName": "CustomTemplate",
"CreatedOn": "November 20, 2017"
}
}
}
マイロガーPOCO
public class LoggerSettings
{
public bool IncludeScopes { get; set; }
public KeyValuePair<string,string> LogLevel { get; set; }
}
を次のように私はクラスをバインドバインダーがLogLevelプロパティをjsonファイル内のものと一致させることができないという事実に注意してください。 jsonファイルのLogging形式を変更できないため、Logger POCOを変更するにはどうしたらよいですか? {[、偽IncludeScopes:ロギングApplicationConfiguration]} {[ApplicationConfiguration:ロギング:ログレベル:デフォルト、警告]}
これは
services.AddSingleton(Configuration);
から構成を検査する場合、JSONプロバイダがそれをどのように解決するかであります
クラス内のプロパティを適切に設定して正しくバインドできないようです。
tyしかし、私のSerilogの質問に答えた後、私はSerilogの使用に切り替えました。私は入力されたポコを使用しているので、この答えは確かにその点で私を助けます – dinotom
@ CodeFuller ...行を3つに行きたいですか?私は別のSerilog質問をここに掲載しました... https://stackoverflow.com/questions/47540478/serilog-not-getting-application-events-only-coded-logger-events – dinotom