激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

香港云服务器
服務(wù)器之家 - 編程語(yǔ)言 - ASP.NET教程 - Asp.Net MVC中配置Serilog的方法

Asp.Net MVC中配置Serilog的方法

2020-04-06 12:28Eric Sun ASP.NET教程

Serilog是一款比較優(yōu)秀的logging framework,Serilog只支持.NET 4.5以上的版本。下面這篇文章將會(huì)通過(guò)圖文及示例代碼的形式給大家介紹Asp.Net MVC中配置Serilog的方法,有需要的朋友們可以參考借鑒,下面來(lái)跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。

一、Serilog介紹

Serilog 是一種非常簡(jiǎn)便記錄log 的處理方式,使用Serilog可以生成本地的text文件, 也可以通過(guò) Seq 來(lái)在Web界面中查看具體的log內(nèi)容。

二、配置方法

接下來(lái)就簡(jiǎn)單的介紹一下在Asp.Net MVC中如何配置是Serilog 生效:

 1):下載并且安裝Seq,具體的下載URL 為 【http://getseq.net/Download】,安裝到默認(rèn)的路徑之后,實(shí)際上時(shí)候啟動(dòng)了一個(gè)Win Service,并且監(jiān)聽的端口號(hào)默認(rèn)為 5341.

安裝的最后一步截圖如下:

Asp.Net MVC中配置Serilog的方法

然后我們到Service列表中可以找到對(duì)應(yīng)的Service, 如下圖所示:

Asp.Net MVC中配置Serilog的方法

2):創(chuàng)建一個(gè)Asp.Net MVC 5的一個(gè)工程, 然后通過(guò) Nuget 下載并且安裝 對(duì)應(yīng)的 package,如下圖所示

Asp.Net MVC中配置Serilog的方法  

3):在 App_Start 文件夾下創(chuàng)建一個(gè) class 叫做 SerilogConfig.cs , 代碼如下所示

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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):在 Web.config 中添加補(bǔ)全所用到的 appSettings

?
1
2
3
4
<appSettings>
 <add key="SeqServer" value="http://localhost:5341/" />
 <add key="SeqApiKey" value="" />
</appSettings>

5):在 Startup.cs 中添加如下代碼完成注冊(cè)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 中添加如下代碼,測(cè)試對(duì)應(yīng)的DebugInformationWarning Error 方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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 運(yùn)行之后, 再去 http://localhost:5341/#/events 中觀察對(duì)應(yīng)的 log 記錄, 如下截圖

Asp.Net MVC中配置Serilog的方法

總結(jié)

這樣簡(jiǎn)單的配置 Serilog 就完成了, 同時(shí)我們也可以到 C:\ProgramData\Seq\Logs 目錄中找到 Log 的文本文件。以上就是本文的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。

更多內(nèi)容請(qǐng)看如下鏈接:

http://serilog.net/

延伸 · 閱讀

精彩推薦
643
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 97青青| 国产手机在线视频 | 欧美综合在线观看视频 | 欧美黄在线 | 依人在线视频 | 热99视频| 国产精品美女久久久免费 | 91九色精品国产 | 天天干导航| 最新黄色av | 有色视频在线观看 | 日本视频网 | 黄污污网站 | 久久逼逼 | 成人不卡 | 91久久国产综合久久91猫猫 | 久久精品视频国产 | 欧美18videos性处按摩 | 在线播放免费人成毛片乱码 | 国产91在线高潮白浆在线观看 | 中文字幕在线观看网址 | 日日摸夜夜骑 | 国产精品免费观在线 | xnxx 日本免费 | 精品一区二区久久久久久久网精 | 日本xxxx视频 | 国产精品久久久乱弄 | 国产精品av久久久久久久久久 | 中文字幕 日本 | 国产一区二区欧美精品 | 视频一区二区在线播放 | 中文字幕在线观看www | 性 毛片| 欧美一级美国一级 | 黄色久 | 黄色小视频免费在线观看 | 在线免费观看精品 | 欧美性受xxxx白人性爽 | 日本在线播放一区二区 | 久久免费观看一级毛片 | 欧美成人国产va精品日本一级 |