ASP.NET 日誌

ASP.NET5已經內建集成了日誌系統,你也能夠用第三方的日誌框架。json

1. 在你的應用程序中實現日誌api

在Startup.cs文件中,在Configure裏能夠把ILoggerFactory注入進去,而後調用它的CreateLogger方法去建立日誌類,代碼以下:app

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<T>, 例如async

public class TodoController : Controller
{
  private readonly ILogger<TodoController> _logger;
  public TodoController(ILogger<TodoController> logger)
  {
    _logger = logger
  }   
}

在上面的例子,logger會用Type的名字作爲它的分類的名字。ui

2. 日誌級別spa

ASP.NET5定義了6個日誌級別日誌

Debugcode

Verboseorm

Information

Warning

Error

Critical

範圍:

範圍是經過調用BeginScopeImpl返回的類型爲IDisposable的對象。 內建的TraceSourceLogger,它的生命週期是從開始跟蹤到結束跟蹤操做。

3. 配置你的日誌

在上面的例子當中,你能夠經過loggerFactory.AddConsole來添加你日誌須要輸入的方式,它會輸出到控制檯。

配置TraceSource日誌

首先,你須要添加Microsoft.Extensions.Logging.TraceSource包到你的project.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的擴展方法去添加你的日誌。
相關文章
相關標籤/搜索