本文示例源码: https://github.com/liangshiw/LogDashboard/tree/develop/samples/DatabaseSource
LogDashboard提供了基础的日志模型,包含以下5个属性,代表着只有包含以下5个属性的日志才可以被LogDashboard解析
LongDate
Logger
Level
Message
Exception
除了以上5个预定义属性外,我们还可以自定义属性
参考快速入门中的创建NetCore项目步骤
使用以下 Nlog.config
<?xml version="1.0" encoding="utf-8" ?><nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"autoReload="true"throwExceptions="false"internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log"><!-- optional, add some variableshttps://github.com/nlog/NLog/wiki/Configuration-file#variables--><variable name="myvar" value="myvalue"/><!--See https://github.com/nlog/nlog/wiki/Configuration-filefor information on customizing logging rules and outputs.--><targets><target xsi:type="file" name="File" fileName="${basedir}/logs/${shortdate}.log"layout="${longdate}||${level}||${logger}||${message}||${exception:format=ToString:innerFormat=ToString:maxInnerExceptionLevel=10:separator=\r\n}||${var:application}||${var:requestMethod}||${machinename}||end" /><!--Write events to a file with the date in the filename.--></targets><rules><logger name="*" minlevel="Error" writeTo="file" /><!-- add your logging rules here --><!--Write all events with minimal level of Debug (So Debug, Info, Warn, Error and Fatal, but not Trace) to "f"<logger name="*" minlevel="Debug" writeTo="f" />--></rules></nlog>
数据库源配置参阅 https://github.com/liangshiw/LogDashboard/blob/master/samples/DatabaseSource/NLog.config
准备工作已经结束,这时安装LogDashboard
Install-Package LogDashboard
在项目中添加ApplicationLogModel
类,并继承 LogModel
接口
public class ApplicationLogModel : LogModel{public string Application { get; set; }public string RequestMethod { get; set; }public string MachineName { get; set; }}
我们自定义了 Application
、RequestMethod
、MachineName
属性
打开Startup.cs
文件
在 ConfigureServices
方法中配置服务
public void ConfigureServices(IServiceCollection services){// 自定义变量LogManager.Configuration.Variables["application"] = "CustomLogModel";LogManager.Configuration.Variables["requestMethod"] = "Get";services.AddLogDashboard(opt => { opt.CustomLogModel<ApplicationLogModel>(); });}
在AddLogDashoard
时使用optionsCustomLogModel
方法注册自定义模型,并使用了nlog的方法进行自定义变量值,因为machineName
是nlog预定义的变量,所以不需要手动斌值。更多内容请参阅nlog文档
在Configure
方法配置中间件
public void Configure(IApplicationBuilder app, IHostingEnvironment env){if (env.IsDevelopment()){app.UseDeveloperExceptionPage();}app.UseLogDashboard();app.Run(async (context) =>{await context.Response.WriteAsync("Hello World!");});}
运行项目导航到 /logdashboard
enjoy