Asp.Net MVC 에서 Serilog 를 설정 하 는 방법

5642 단어 asp.netmvcserilog
Serilog
Serilog 는 log 를 간편 하 게 기록 하 는 처리 방식 으로 Serilog 를 사용 하면 로 컬 text 파일 을 생 성 할 수 있 고 Seq 를 통 해 웹 인터페이스 에서 구체 적 인 log 내용 을 볼 수 있 습 니 다.
2.배치 방법
다음은 Asp.Net MVC 에서 Serilog 를 어떻게 설정 하 는 지 간단하게 소개 합 니 다.
 1):Seq 를 다운로드 하고 설치 합 니 다.구체 적 인 다운로드 URL 은[http://getseq.net/Download]기본 경로 에 설치 한 후에 실제 적 으로 Win Service 를 시 작 했 고 감청 포트 번 호 는 기본적으로 5341 입 니 다.
설치 한 마지막 캡 처 는 다음 과 같 습 니 다.
 
그리고 저 희 는 Service 목록 에서 해당 하 는 Service 를 찾 을 수 있 습 니 다.다음 그림 과 같 습 니 다.
 
2):Asp.Net MVC 5 프로젝트 를 만 든 다음 Nuget 을 통 해 해당 하 는 패 키 지 를 다운로드 하고 설치 합 니 다.아래 그림 과 같 습 니 다.
  
3):앱 에서Start 폴 더 아래 에 SerilogConfig.cs 라 는 클래스 를 만 듭 니 다.코드 는 다음 과 같 습 니 다.

using Serilog;
using SerilogWeb.Classic.Enrichers;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Web;
using System.Web.Hosting;

namespace TestSerilog.App_Start
{
  public class SerilogConfig
  {
    public static ILogger CreateLogger()
    {
      var logpath = HostingEnvironment.MapPath("~");
      var config = new LoggerConfiguration()
        .Enrich.WithMachineName()
        .Enrich.WithProperty("ApplicationName", AssemblyTitle)
        .Enrich.With<HttpRequestClientHostIPEnricher>()
        .Enrich.With<HttpRequestRawUrlEnricher>()
        .Enrich.With<HttpRequestIdEnricher>()
        .Enrich.With<UserNameEnricher>()
        //.Enrich.WithProperty("RuntimeVersion", Environment.Version)
        // this ensures that calls to LogContext.PushProperty will cause the logger to be enriched
        .Enrich.FromLogContext()
        .MinimumLevel.Verbose()
        .WriteTo.Seq(ConfigurationManager.AppSettings["SeqServer"], apiKey: ConfigurationManager.AppSettings["SeqApiKey"])
        .WriteTo.RollingFile(Path.Combine(logpath, "Logs\\EricSunTestLog-{Date}.log"), retainedFileCountLimit: null, outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] {SourceContext} - ({MachineName}|{HttpRequestId}|{UserName}) {Message}{NewLine}{Exception}");
      return config.CreateLogger();
    }

    public static string AssemblyTitle
    {
      get
      {
        var attributes = typeof(SerilogConfig).Assembly.GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
        if (attributes.Length > 0)
        {
          var titleAttribute = (AssemblyTitleAttribute)attributes[0];
          if (titleAttribute.Title.Length > 0)
            return titleAttribute.Title;
        }
        return Path.GetFileNameWithoutExtension(Assembly.GetEntryAssembly().CodeBase);
      }
    }
  }
}
4):웹.config 에 보완 에 사용 할 app Settings 추가

 <appSettings>
  <add key="SeqServer" value="http://localhost:5341/" />
  <add key="SeqApiKey" value="" />
 </appSettings>
5):Startup.cs 에 다음 코드 를 추가 하여 등록 완료

using Microsoft.Owin;
using Owin;
using Serilog;
using TestSerilog.App_Start;

[assembly: OwinStartupAttribute(typeof(TestSerilog.Startup))]
namespace TestSerilog
{
  public partial class Startup
  {
    public void Configuration(IAppBuilder app)
    {
      ConfigureAuth(app);
      Log.Logger = SerilogConfig.CreateLogger();
    }
  }
}
6):HomeController 의 Index Action 에 다음 과 같은 코드 를 추가 하고 테스트 에 대응 하 는Debug,Information,Warning Error 방법

using Serilog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace TestSerilog.Controllers
{
  public class HomeController : Controller
  {
    private ILogger _logger = Log.Logger; 

    public ActionResult Index()
    {
      _logger.Debug("This is index -- debug.");
      _logger.Information("This is index -- information.");
      _logger.Warning("This is index -- warning.");
      _logger.Error("This is index -- error.");
      return View();
    }

    public ActionResult About()
    {
      ViewBag.Message = "Your application description page.";

      return View();
    }

    public ActionResult Contact()
    {
      ViewBag.Message = "Your contact page.";

      return View();
    }
  }
}
7):직접 VS 2015 가 실 행 된 후에http://localhost:5341/#/events 에서 해당 하 는 로그 기록 을 관찰 하고 다음 과 같이 캡 처 한다.

총결산
이렇게 간단 한 설정 Serilog 가 완성 되 었 으 며,동시에 우 리 는 C:\ProgramData\\Seq\\Logs 디 렉 터 리 에서 Log 의 텍스트 파일 을 찾 을 수 있 습 니 다.이상 은 본 고의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 댓 글 을 남 겨 주 십시오.
더 많은 내용 은 다음 링크 를 보십시오.
http://serilog.net/

좋은 웹페이지 즐겨찾기