常州微信网站建设服务,企业网站的作用,浙江建设人才网,上海专业网站建设咨询#x1f4e3;读完这篇文章里你能收获到
如何在Docker中部署 SEQ#xff1a;介绍了如何创建和运行 SEQ 容器#xff0c;给出了详细的执行操作如何使用 NLog 接入 .NET Core 应用程序的日志#xff1a;详细介绍了 NLog 和 NLog.Seq 来配置和记录日志的步骤日志记录示例… 读完这篇文章里你能收获到
如何在Docker中部署 SEQ介绍了如何创建和运行 SEQ 容器给出了详细的执行操作如何使用 NLog 接入 .NET Core 应用程序的日志详细介绍了 NLog 和 NLog.Seq 来配置和记录日志的步骤日志记录示例博客提供了一个简单的日志记录示例展示了如何在应用程序中使用 NLog 记录日志发送到SEQ 文章目录 一、简介二、SEQ部署1. 下载SEQ Docker镜像2. 生成SEQ密码3. 创建SEQ容器4. 访问SEQ Web界面5. 创建日志源APP Key 三、.NET Core接入NLog1. 添加依赖包2. 配置nlog.config3. 在Startup.cs文件中启用NLog4. 日志记录 四、SEQ查询1. 事件查询2. 看板制作 五、总结 摘要本文介绍了如何使用SEQ来进行.NET Core应用程序的日志记录和查询。首先我们将了解SEQ的基本概念和功能。然后我们会详细说明如何在.NET Core应用程序中配置和部署SEQ并通过示例代码演示如何实现日志记录和查询。
一、简介
SEQ是一款功能强大的日志管理工具它提供了易于使用的Web界面和灵活的查询语法帮助开发人员更好地理解和分析应用程序的日志信息。在本文中我们将使用SEQ来记录和查询.NET Core应用程序的日志。 二、SEQ部署
1. 下载SEQ Docker镜像
sudo docker pull datalust/seq:latest2. 生成SEQ密码
PH$(echo password |sudo docker run --rm -i datalust/seq config hash)3. 创建SEQ容器
sudo mkdir -p data/logssudo docker run \--name seq \-d \--restart unless-stopped \-e ACCEPT_EULAY \-e SEQ_FIRSTRUN_ADMINPASSWORDHASH$PH \-v /data/log-prod:/data \-p 8001:80 \-p 5341:5341 \--memory16g \--memory-swap16g \datalust/seq上面的docker运行脚本中有几个点需要注意的
Seq存储的数据包括元数据和事件数据元数据指用户信息、Seq配置等数据事件数据指收集到的日志数据。这两种数据默认都是直接存储在磁盘上的所以在容器启动时需要将数据存储的路径映射到宿主机上。事件数据只能存储在磁盘上而元数据有需要的话可以存储到sqlserver或者postgresql可以在容器启动之后进入容器对元数据进行迁移可以在容器启动时通过环境变量的方式指定存储路径如下
-e SEQ_METASTORE_POSTGRES_CONNECTIONSTRINGHostlocalhost;Port5432;DatabaseseqSeq实例在不指定最大内存的情况下会尽可能的占用宿主机尽可能多的内存为了保证实例能够稳定运行不会因为内存问题退出或者被杀掉也为了不影响其他应用可以为seq实例设置可用的最大内存而通过seq提供的环境变量SEQ_CACHE_SYSTEMRAMTARGET可以配置seq是否使用缓存在为seq容器分配的内存比较少的情况下可以不适应缓存。
4. 访问SEQ Web界面
SEQ容器启动后打开浏览器并输入http://localhost:8001即可进入SEQ的Web界面。
5. 创建日志源APP Key
在SEQ的Web界面中我们需要为每个应用程序创建一个独立的日志源。通过点击界面右上角的Add 按钮可以创建一个新的日志源并记录下该日志源的API密钥以便后续在.NET Core应用程序中进行配置。 三、.NET Core接入NLog
1. 添加依赖包
在.NET Core应用程序的项目文件中添加NLog和NLog.Seq的NuGet包引用。可以使用以下命令在项目文件中添加NuGet包引用
dotnet add package NLog
dotnet add package NLog.Web.AspNetCore
dotnet add package NLog.Targets.Seq2. 配置nlog.config
?xml version1.0 encodingutf-8 ?
nlog xmlnshttp://www.nlog-project.org/schemas/NLog.xsdxmlns:xsihttp://www.w3.org/2001/XMLSchema-instanceautoReloadtrueinternalLogLevelinfothrowConfigExceptionstrueextensionsadd assemblyNLog.Web.AspNetCore/add assemblyNLog.Targets.Seq//extensionsvariable nameOwnWebLayoutvalue${longdate}|${event-properties:itemEventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:formattostring}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}/targets asynctruetarget nameseq xsi:typeBufferingWrapper bufferSize1000 flushTimeout2000target xsi:typeSeq serverUrlhttp://localhost:5341 apiKey property nameMachineName value${machinename} /property nameLogType value${event-properties:itemLogType} //target//target/targetsruleslogger name* minlevelDebug writeToseq //rules
/nlog3. 在Startup.cs文件中启用NLog
using NLog.Extensions.Logging;public class Startup
{public void ConfigureServices(IServiceCollection services){// 其他配置...// 启用NLogservices.AddLogging(loggingBuilder {loggingBuilder.ClearProviders();loggingBuilder.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);loggingBuilder.AddNLog();});}
}
4. 日志记录
private readonly ILoggerHomeController _logger;public HomeController(ILoggerHomeController logger)
{_logger logger;
}public IActionResult Index()
{_logger.LogInformation(Index page visited);// 应用程序逻辑...return View();
} 四、SEQ查询
1. 事件查询
在SEQ的Web界面中可以使用简单而强大的查询语法来过滤和分析日志。例如可以通过关键词、日期范围或其他属性进行过滤。以下是一些常用的查询示例
查询包含特定关键词的日志“关键词”查询特定级别的日志Level “级别” 2. 看板制作 五、总结
本文介绍了如何使用SEQ来记录和查询.NET Core应用程序的日志。通过部署SEQ并在.NET Core应用程序中配置日志记录可以轻松地将应用程序的日志发送到SEQ中并使用SEQ的强大查询功能对日志进行分析和筛选。希望本文能帮助你更好地管理和利用应用程序的日志信息。
附SEQ官方的文档https://docs.datalust.co/docs