使用 Exceptionless 作为 Log Server 搭配 NLog 记录系统日志

本文介绍了如何使用Exceptionless作为Log Server,并结合NLog记录系统日志。首先,介绍了准备动作,包括安装所需环境和软件。然后详细阐述了如何架设Server和Dashboard,包括修改配置文件和在IIS中设置站点。接着,创建Exceptionless项目并获取API Key,最后安装Client端的Exceptionless.NLog套件,并配置NLog.config文件,实现将Log信息写入Exceptionless。文章提供了一种简单易用的日志解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天的文章<免费开源分布式系统日志收集框架 Exceptionless>反响很大,今天推的一篇是续集,文章来自于宝岛台湾的MVP, 让 Exceptionless 建置 Log Server,性能不用担心,用的是大名点点的ELK组合.


前言



...久违的新文章,让我的眼角流下了蛋蛋忧伤的泪珠....

今天来介绍一下一款 Open Source 的项目Exceptionless

Exceptionless 是什么? Exceptionless 的团队对这个名称的定义意义是无例外,当然...谁不想~不要有例外错误发生呢? (...),但是当发生例外时你要怎么知道!? 就可以通过 Exceptionless 的服务来取得必要信息啦(要钱的~)

当然,这个团队也是很佛心的提供了 Open Source 让你可以自己架设你的 Log Server ! 整个 Exceptionless 包含了 Server Client 两部分,Server指的是一个 Web Api 的项目与 Dashboard 检视,提供Client 端将系统信息写入,Clinet 指的是客户端通过所提供的 Lib 就能够简单的呼叫提供的方法写入 Log 信息。

目前有提供的客户端支持有 ASP.NET, MVC, Web API, WPF, WinForms, and Console,JavaScript, Node.js,另外也支持了NLog扩充,为了我们的荷包着想,接来下我将介绍一下怎么自行安装 Exceptionless 给你的系统使用,本文章使用 Exceptionless v 3.0.0 为范例。

 

准备动作


首先,请先准备以下几个项目

§  安装 .Net Framework 4.5.1+

§  安装 Java 1.8+

§  安装 IIS 8+

§  安装 ElasticSearch 1.7.0+

§  下载 Exceptionless 3.0.0

§  下载 Exceptionless.UI 2.1.1

针对 Java 的部分,需要至环境变量设定 JAVA_HOME,指向你的 Java 安装目录,如下


针对

好的,以下是使用NLog将日志记录到SqlServer的步骤: 1. 首先,需要在项目中安装NLogNLog.Web.AspNetCore包。可以使用NuGet包管理器或在项目文件中手动添加依赖项。 2. 在项目的appsettings.json文件中添加以下NLog配置: ``` "NLog": { "targets": { "database": { "type": "Database", "dbProvider": "System.Data.SqlClient", "connectionString": "Server=[server];Database=[database];User Id=[user];Password=[password];", "commandText": "INSERT INTO [Logs] ([Date], [Level], [Logger], [Message], [Exception]) VALUES (@Date, @Level, @Logger, @Message, @Exception);", "parameter": [ { "name": "@Date", "layout": "${date}" }, { "name": "@Level", "layout": "${level}" }, { "name": "@Logger", "layout": "${logger}" }, { "name": "@Message", "layout": "${message}" }, { "name": "@Exception", "layout": "${exception}" } ] } }, "rules": [ { "logger": "*", "minLevel": "Trace", "writeTo": "database" } ] } ``` 3. 在Startup.cs文件中添加以下代码: ```csharp public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { //... loggerFactory.AddNLog(); //... app.UseMiddleware<NLogMiddleware>(); //... } ``` 4. 创建一个名为Logs的表,用于存储日志记录。表结构应如下所示: ```sql CREATE TABLE [dbo].[Logs]( [Id] [int] IDENTITY(1,1) NOT NULL, [Date] [datetime2](7) NOT NULL, [Level] [nvarchar](50) NOT NULL, [Logger] [nvarchar](250) NOT NULL, [Message] [nvarchar](max) NOT NULL, [Exception] [nvarchar](max) NULL, CONSTRAINT [PK_Logs] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] ``` 5. 现在,可以在代码中使用NLog记录日志了。例如: ```csharp private readonly ILogger<HomeController> _logger; public HomeController(ILogger<HomeController> logger) { _logger = logger; } public IActionResult Index() { _logger.LogInformation("Hello, world!"); return View(); } ``` 这将在Logs表中插入一条日志记录。 希望这可以帮助到你。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值