私は私のappsettings.jsonとappsettings.Development.jsonを設定するしかし、私は手動でWebHostBuilderにConfigureLogging を追加しない限り、私は情報メッセージの下に記録され、何も得ることができませんセットアップ、次のように:(まだ)
var host = new WebHostBuilder()
.UseConfiguration(config)
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>()
.ConfigureLogging(logging => logging.SetMinimumLevel(LogLevel.Debug))
.Build();
をだから今、私は動的環境に基づいてログレベルを設定したいのですが、私のプログラムのメイン(にIHostingEnvironmentインスタンスへのアクセスを取得する方法を見つけ出すことはできません)前WebHostBuilderの設定私のスタートアップクラスを参照してください。
私は、次のようなコードで、ここでのポストを見たが、それは静的な型が型の引数として使用することはできませんと言って、私のGetService<Application>()
ラインの構文エラーを与えている:
var loggingLevel = LogLevel.Information;
IServiceCollection serviceCollection = new ServiceCollection();
IServiceProvider serviceProvider = serviceCollection.BuildServiceProvider();
var app = serviceProvider.GetService<Application>();
var hostingEnvironment = app.ApplicationServices.GetRequiredService<IHostingEnvironment>();
if (hostingEnvironment.IsDevelopment())
{
loggingLevel = LogLevel.Debug;
}
がありますこれを行う良い方法は?
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Information"
}
},
"Log4Net": {
"ConfigFileRelativePath": "log4net.xml",
"Repository": "NETCoreRepository"
}
}
とappsettings.Development.json:ここ
は私のappsettings.jsonある
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug"
}
},
"Swagger": {
"FileName": "MyController.xml"
}
}
そして、私のプロジェクトのデバッグパネルには、環境変数を設定していない:
をASPNETCORE_ENVIRONMENT Development
ここにあなたのappSettingsを投稿できますか?これは通常、最小ロギングレベルを定義します。 – MindingData
よろしくお願いします。私は多くの組み合わせを試しました。 WebHostBuilderのConfigureLoggingへの呼び出しを追加するまでは、両方とも、さまざまなプロバイダ(Consoleなど)で「Debug」を使用していました。 – Alan