ASP.NETログ

3585 ワード

ASP.NET 5はすでにログシステムを内蔵しており、サードパーティのログフレームワークも使用できます.
1.アプリケーションでのログの実装
スタータープでcsファイルでは、ConfigureでILoggerFactoryを注入し、CreateLoggerメソッドを呼び出してログクラスを作成できます.コードは次のとおりです.
public void Configure(IApplicationBuilder app,
    IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(minLevel:LogLevel.Verbose); app.Run(
async (context) => { var logger = loggerFactory.CreateLogger("Catchall Endpoint"); logger.LogInformation("Not endpoint found for request {path}", context.Request.Path); awiat context.Response.WriteAsync("No endpoint found - try/api/todo."); } }

ログを作成するときは、「タイプ」パラメータを渡す必要があります.これにより、階層関係を持つことができます.分割します.
アプリケーションでログを使用するには、DIでILoggerを注入します.
public class TodoController : Controller
{
  private readonly ILogger<TodoController> _logger;
  public TodoController(ILogger<TodoController> logger)
  {
    _logger = logger
  }   
}

上記の例では、loggerはTypeの名前を分類の名前として使用します.
2.ログ・レベル
ASP.NET 5では6つのログ・レベルが定義されています
Debug
Verbose
Information
Warning
Error
Critical
範囲:
範囲は、BeginScopeImplを呼び出して返されるタイプがIDisposableのオブジェクトです.内部に構築されたTraceSourceLoggerのライフサイクルは、トレースの開始からトレースの終了までです.
3.ログの設定
上の例ではloggerFactoryを使ってAddConsoleは、ログに入力する方法を追加し、コンソールに出力します.
TraceSourceログの設定
まず、Microsoftを追加する必要があります.Extensions.Logging.TraceSourceはあなたのプロジェクトにパッケージされています.jsonファイルにあります.
"dependencies": { "Microsoft.AspNet.Mvc": "6.0.0-rc1-final", "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final", "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final", "Microsoft.Extensions.Logging": "1.0.0-rc1-final", "Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final", "Microsoft.Extensions.Logging.TraceSource": "1.0.0-rc1-final"  },
TraceSource, DNX Core , #if DNX451
#if DNX451
var sourceSwitch = new SourceSwitch("LoggingSample");
 sourceSwitch.Level = SourceLevels.Critical;
loggerFactroy.AddTraceSource(sourceSwitch, new ConsoleTraceListener(false));
loggerFactory.AddTraceSource(sourceSwitch, new EventLogTraceListener("Application"));
#endif
, project.json , ILoggerFactory 。