appsettings.json 파일의 값을 바인딩하는 ApplicationConfigurationSettings 클래스가 있습니다. 로깅 LogLevel 값을 제외하고는 모든 것을 얻을 수 있습니다. 로깅 항목의 json 형식에 하위 수준이 있기 때문일 가능성이 큽니다. appsettings에서 POCO로 로깅 구성 바인딩 Asp.Net Core 2
{
"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; }
}
내가 확신이 때문이다 (간결함을 위해 제거 된 부품)
services.Configure<ApplicationConfigurationSettings>(Configuration.GetSection("ApplicationConfiguration"));
appsettings.json을 다음과 같이
나는 클래스를 바인딩 바인더가 LogLevel 속성을 json 파일의 내용과 일치시킬 수 없다는 사실에주의하십시오. json 파일에서 로깅 형식을 변경할 수 없으므로 로거 POCO를 변경하려면 어떻게합니까? {[거짓 IncludeScopes : 로깅 ApplicationConfiguration]} {[ApplicationConfiguration : 로깅 : LogLevel에 : 기본, 경고]}
이
services.AddSingleton(Configuration);
에서 구성을 검사 할 때 JSON 공급자가 그것을 해결하는 방법입니다
정확하게 바인딩 할 수 있도록 해당 속성을 클래스에서 올바르게 설정하지 못하는 것 같습니다.
ty,하지만 내 Serilog 질문에 답한 후에 깨달은 것처럼, 나는 Serilog를 사용하도록 전환했습니다. 나는이 대답이 분명히 그 점에 도움이되도록 입력 된 poco를 사용할 것입니다. – dinotom
@ CodeFuller ... 3 연속으로 가고 싶습니까? 다른 Serilog 질문은 여기에 게시되어 있습니다 ... https : //stackoverflow.com/questions/47540478/serilog-not-getting-application-events-only-coded-logger-events – dinotom