LogDashboard

logdashboard是在github上开源的aspnetcore项目, 它旨在帮助开发人员排查项目运行中出现错误时快速查看日志排查问题

通常我们会在项目中使用nlog、log4net等日志组件,它们用于记录日志的功能非常强大和完整,常见情况会将日志写到txt数据库中, 但通过记事本和sql查看日志并不简单方便. LogDashboard提供了一个可以简单快速查看日志的面板.

LogDashboard适用于aspnetcore 2.x - aspnetcore3.x 项目, 采用aspnetcore中间件技术开发. 轻量快速。

官网地址 https://logdashboard.net/
在线演示地址 https://logdashboard.net/logdashboard
文档地址 https://doc.logdashboard.net/

页面预览

首页

实时查看应用程序运行中产生的日志

  • 日志聚合
  • 趋势图表
  • 最近十条日志

列表

复合检索所有日志并查看详情等操作

特性

  • 授权访问
  • 自定义日志模型
  • 日志追踪
  • 堆栈查看

支持的日志组件

  • nlog
  • log4net
  • serilog

支持的数据源

  • txt
  • 数据库

快速开始

本文示例源码在 https://github.com/liangshiw/LogDashboard/tree/master/samples/DotNetCoreEmptyUseNlog

创建NetCore项目

确保机器上安装了NetCore SDK,打开PowerShell运行以下命令,我们将创建一个AspNetCore空项目

dotnet new empty

安装Nlog日志组件

使用VSCode或VisualStudio打开项目,这时我们还需要做一些其他的准备工作。日志组件选用Nlog

Install-Package NLog.Web.AspNetCore

打开Program.csCreateHostBuilder方法中添加Nlog中间件,复制以下代码覆盖CreateHostBuilder 方法

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder=>
{
webBuilder.UseStartup<Startup>()
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Information);
})
.UseNLog();
});

添加一个Nlog.config到项目中,并右键文件设置为复制到输出目录,以下是Nlog.config的全部内容

配置文件需要分隔符才可以被LogDashboard解析,默认是||与||end,也可以自定义,请参阅LogDashboard配置

<?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"> <variable name="myvar" value="myvalue"/> <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}||end" /> </targets> <rules>
<logger name="*" minlevel="Debug" writeTo="file" /> </rules>
</nlog>

安装 LogDashboard

准备工作已经结束,这时安装 LogDashboard

Install-Package LogDashboard

打开Startup.cs我们要做两件事

  1. ConfigureServices方法中配置服务
public void ConfigureServices(IServiceCollection services)
{
services.AddLogDashboard();
}

关于更多的配置请参阅 LogDashboard配置

  1. 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

线路图

  • 日志中心

交流群

最新文章

  1. Steamroller
  2. SSH Junit4测试
  3. c3p0连接池]
  4. ios 8+ (xcode 6.0 +)应用程序Ad Hoc 发布前多设备测试流程详解
  5. MACOS,LINUX,IOS上可用的毫秒级精度时间获取
  6. 重新执笔,已是大三!Jekyll自定义主题开发
  7. Django1.6添加comments应用的简单过程
  8. gem &#39;logstash-devutils&#39;
  9. weblogic启动报错之未修改hosts产生错误
  10. JS列
  11. String,StringBuilder,StringBuffer
  12. iview render Datepicker 起止时间限制
  13. 类的命名空间&amp;组合
  14. markdown特殊符号语法
  15. lvm的备份还原及修改UUID
  16. mysql视图的作用
  17. Navicat For MySQL--外键建立与cannot add foreign key constraint分析
  18. 【python笔记】使用matplotlib,pylab进行python绘图
  19. 朽木第一至三季/全集Deadwood迅雷下载
  20. CSS3 转换

热门文章

  1. 通俗的讲,就是高层模块定义接口,低层模块负责实现。 Bob Martins对DIP的定义: 高层模块不应依赖于低层模块,两者应该依赖于抽象。 抽象不不应该依赖于实现,实现应该依赖于抽象。
  2. SQLServer 跨服务器链接 Access数据库
  3. LinuxShell——变量
  4. Eureka自我保护机制源码解析
  5. a标使用window.open()方法
  6. selenium和AutoIt工具辅助下载和上传
  7. MySQL的select(极客时间学习笔记)
  8. 2.dubbo 支持哪些通信协议?支持哪些序列化协议?说一下 Hessian 的数据
  9. ngx-echarts 图表数据动态更新
  10. Linux framebuffer deferred io机制【转】