然后我们到Service列表中可以找到对应的Service, 如下图所示:
2):创建一个Asp.Net MVC 5的一个工程, 然后通过 Nuget 下载并且安装 对应的 package,如下图所示
3):在 App_Start 文件夹下创建一个 class 叫做 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):在 Web.config 中添加补全所用到的 appSettings
<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
中观察对应的 log 记录, 如下截图
总结
这样简单的配置 Serilog 就完成了, 同时我们也可以到 C:ProgramDataSeqLogs 目录中找到 Log 的文本文件。以上就是本文的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
更多内容请看如下链接:
http://serilog.net/