私はasp.netコア1.1を使用して簡単なコンソールアプリケーションを作成しました。 Iセットアップケストレルはホスティングと私は IApplicationBuilderとILoggerFactoryを注入設定方法を使用していました。 私はAddConsoleエクステンションをloggerFactoryと呼んでいます。 次に、私は最も単純なミドルウェアを実行し、メッセージを出力します。 アプリケーションコードは以下の通りである:私は「locahost:5000」を訪問した後コンソールアプリケーションでILoggerFactoryを注入するとasp.netコア1.1のインスタンスを生成するvs
Hosting environment: QQ
Content root path: F:\REPOS CORE 1.0.0\LOGGING\DemoILoggerFactory\src\DemoILoggerFactory\bin\Debug\netcoreapp1.0
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
:私は、アプリケーションを実行すると
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
namespace DemoILoggerFactory
{
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseStartup<Program>()
.Build();
host.Run();
}
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole();
app.Run(async context => {
await context.Response.WriteAsync("Message ..");
});
}
}
}
が、私はコンソールで次の出力を取得するには、次のログ情報ですコンソールに示されている:
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost:5000/
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 125.5854ms 200
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost:5000/favicon.ico
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 0.9471ms 200
後、私は設定引数とinstantiaからILoggerFactoryを削除メソッドを構成してください。唯一の違いは、の署名がに設定され、がLoggerFactoryのになります。変更されたコードを以下に示します。今
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
namespace DemoILoggerFactory
{
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseStartup<Program>()
.Build();
host.Run();
}
public void Configure(IApplicationBuilder app)
{
ILoggerFactory loggerFactory = new LoggerFactory();
loggerFactory.AddConsole();
app.Run(async context => {
await context.Response.WriteAsync("Message ..");
});
}
}
}
、アプリケーションを実行すると、私はローカルホストを訪問する前に:5000、以下の情報がコンソールウィンドウに表示さ:5000:私は」ローカルホストを再検討した後
Hosting environment: QQ
Content root path: F:\REPOS CORE 1.0.0\LOGGING\DemoILoggerFactory\src\DemoILoggerFactory\bin\Debug\netcoreapp1.0
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
コンソールに追加の要求ログは表示されません。次のように
Project.jsonファイルは、両方のケースについて、次のとおりです。私は
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.1.0"
},
"Microsoft.AspNetCore.Hosting": "1.1.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
"Microsoft.Extensions.Logging": "1.1.0",
"Microsoft.Extensions.Logging.Console": "1.1.0",
"Microsoft.AspNetCore.Http": "1.1.0"
},
"frameworks": {
"netcoreapp1.1": {
"imports": "dnxcore50"
}
}
}
何をしないのですか? 2つの「LoggerFactory」インスタンスの動作が異なるのはなぜですか?