Seq 日志: .NET 应用程序中集成与快速入门

news/2025/1/23 13:36:28/文章来源:https://www.cnblogs.com/netcore5/p/18687653

Seq 是一个功能强大且易于使用的日志服务器,特别适合用于集中管理和可视化 .NET 应用程序的日志。它支持结构化日志记录,提供实时查询和分析功能,帮助开发者快速定位和解决问题。

安装和配置 Seq

  • Windows 部署

    可以从 Seq 下载页面:https://datalust.co/download 获取最新版本并按照说明进行安装。

  • Docker 部署

    创建 Docker 数据卷并启动 Seq 容器:

    docker volume create seq-data
    docker run --name seq -d --restart=always -e ACCEPT_EULA=Y -v seq-data:/data -p 5380:80 datalust/seq:2023.3
    

    访问 http://localhost:5380 即可看到 Seq 管理界面。

  • Linux 部署

    请参考 Seq 官方文档 获取详细的安装步骤。

界面

安装完成后进入管理界面:http://localhost:5341/

首页

仪表盘板

在 .NET Core 中集成 Seq

使用 Serilog 集成
  1. 添加 NuGet 包

    安装 Serilog.Sinks.Seq 包:

    dotnet add package Serilog.Sinks.Seq
    
  2. 配置 Serilog

    Program.cs 文件中配置 Serilog 以将日志发送到 Seq 服务器:

    using Serilog;Log.Logger = new LoggerConfiguration().MinimumLevel.Debug() // 设置最低日志级别为 Debug.WriteTo.Seq("http:// seq-server-url") // 替换为你的 Seq 服务器地址.CreateLogger();try
    {Log.Information("应用程序启动");// 你的应用程序代码
    }
    catch (Exception ex)
    {Log.Fatal(ex, "应用程序意外终止");
    }
    finally
    {Log.CloseAndFlush();
    }
    
  3. 记录日志

    在控制器或服务中使用 ILoggerLog 记录日志:

    public class TestController : ControllerBase
    {private readonly ILogger<TestController> _logger;public TestController(ILogger<TestController> logger){_logger = logger;}[HttpGet("TestLogSeq")]public string TestLogSeq(){_logger.LogInformation("这是一条测试日志。");return "ok";}
    }
    
使用 NLog 集成
  1. 配置 NLog

    在项目根目录添加 nlog.config 文件,并配置 Seq 作为目标:

    <?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"><targets><target xsi:type="Seq" serverUrl="http://localhost:5380" apiKey="your_api_key" /></targets><rules><logger name="*" minlevel="Debug" writeTo="seq" /></rules>
    </nlog>
    
  2. 启用 NLog

    Program.csStartup.cs 中启用 NLog:

    public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder =>{webBuilder.UseStartup<Startup>();}).UseNLog();
    
  3. 记录日志

    同样,在控制器或服务中使用 ILogger 记录日志:

    public class TestController : ControllerBase
    {private readonly ILogger<TestController> _logger;public TestController(ILogger<TestController> logger){_logger = logger;}[HttpGet("TestLogSeq")]public string TestLogSeq(){_logger.LogInformation("这是一条测试日志。");return "ok";}
    }
    

Seq 日志查询

Seq 提供了强大的查询功能,支持类似 SQL 的语法:

  • 查询包含特定关键词的日志

    @Message like '%keyword%'
    
  • 查询特定级别的日志

    @Level = 'Error'
    
  • 查询特定服务的日志

    app = 'service_name'
    
  • 聚合查询

    select count(*) as ErrorCount from stream where @Level = 'Error' group by @timestamp.day
    

缺点

  • 性能和资源限制:高负载下可能面临性能瓶颈,对内存和资源管理要求较高。
  • 功能限制:免费版功能受限,付费版价格较高。
  • 安全问题:默认使用HTTP,需额外配置SSL/TLS保障数据安全。

总结

通过以上操作,可以快速在 .NET Core 应用中集成 Seq,并利用其强大的日志聚合和查询功能提升开发和运维效率。作为日志系统,免费版本的基础功能已经足够使用 。更多高级功能和配置可以参考 Seq 官方文档。

https://docs.datalust.co/docs/an-overview-of-seq

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/873668.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

折腾笔记[11]-使用rust进行直接法视觉里程计估计

使用rust实现了一个完整的直接法视觉里程计系统,能够通过比较两幅图像中的像素强度来估计相机的运动。它通过单层和多层的优化策略,结合图像金字塔和并行计算,提高了位姿估计的精度和效率。最终,代码输出了优化后的相机位姿变换矩阵,并可视化了投影点的位置。摘要 使用rus…

5 链路层

5 链路层 5.1 概述 节点(node):运行链路层协议的设备(主机、路由器、交换机、WiFi接入点) 链路(link):沿着通信路径连接相邻节点的通信信道 数据链路层(data link layer):将数据报封装在链路层帧(frame)中通过通信链路从一个节点传输到另一个节点 链路层提供的服务…

【动态规划】01背包专题

01背包在恰好等于的情况下求最小物品数 MELON的难题每个物品(石头)的价值w[i]就是其自己的个数,为1 体积题目已给出。 状态定义:f[i][j]表示在前i个物品中选,且体积总和恰好等于j需要的物品个数的最小值 初始化: f[i][0] = 0 , 1 <= i <= n f[0][j] = INF, 1 <=…

阿里开源语音克隆CosyVoice2 整合包

CosyVoice2 win整合包 语音克隆CosyVoice2 链接:https://pan.quark.cn/s/5e75615a5cd4 修改webui.py默认值: # 修改默认推理模式 mode_checkbox_group = gr.Radio(choices=inference_mode_list, label=选择推理模式, value=inference_mode_list[1])# 修改随机推理种子 seed =…

KeyClicker 为用户带来真实键盘打字声音体验的应用,再现机械键盘与打字机的打字感受

如果你是一名作家,或者对打字机的声音情有独钟,KeyClicker 将是你的理想选择。许多作家认为,打字机的声音能让他们更专注、更有创作灵感。虽然实体打字机的魅力独特,但它缺乏现代设备的便捷功能,例如高效的编辑与数字化操作。而使用 KeyClicker,你既能享受打字机的经典声…

gdb调试小技巧——多个窗口显示

先用tty显示需要显示的终端的序号 ┌──(root㉿kali)-[~] └─# tty /dev/pts/3然后 vim ~/.gdbinit在文件后加一行 set context-output /dev/pts/2这里数字就是tty显示的数字 设置好之后打开gdb时就可以了

道路流量监测摄像机

道路流量监测摄像机是一种结合了监控摄像技术和交通管理的先进设备,旨在通过实时监测和分析道路上车辆的行驶情况,收集交通流量数据并进行统计分析。这种摄像机在城市交通管理、道路规划、交通安全等领域有着广泛的应用前景。道路流量监测摄像机是一种结合了监控摄像技术和交…

占用消防通道监测摄像机

占用消防通道监测摄像机是一种结合了智能分析技术和监控技术的先进设备,在预防火灾事故和保障人员安全方面具有重要意义。随着社会对安全意识不断提高以及相关法规标准日益完善,相信这种先进设备将会在更多领域得到广泛应用,并为我们创造更加安全、有序的公共环境。占用消防…

安全帽佩戴识别摄像机

安全帽佩戴识别摄像机的应用不仅仅是对现有安全管理模式的一种补充,更是对安全理念的一种革新。它打破了传统安全管理中依靠人工巡检、监督的局限性,实现了安全管理的自动化、智能化。它以一种高效、精准、持续的方式,让安全管理无处不在,让每一个工作人员都时刻处于安全的…

戴头盔识别摄像机

戴头盔识别摄像机是一种结合了智能分析技术和监控技术的先进设备,在提高安全意识和减少事故风险方面具有重要意义。随着社会对安全生产和公共秩序关注度不断提高以及相关法规标准日趋完善,相信这种先进设备将会在更多领域得到广泛应用,并为我们创造更加安全、健康的生活环境…

38个!第六批产业技术基础公共服务平台名单公布

https://mp.weixin.qq.com/s?__biz=MjM5OTUwMTc2OA==&mid=2650924081&idx=1&sn=4b020757ad7a231d0391def504479dbc&chksm=bddf0a2406acfe4e2b9612d57d3de64162d337594a44dc7f061cddcebc4d3a4982a904eb621e&scene=126&sessionid=1737537299#rd

c语言训练程序思维——贪吃蛇未完成版

c语言做的贪吃蛇,未完成,还剩“吃苹果”和“方向”,感兴趣者可以下载玩玩。(初学者,适合训练程序思维,涉及:多维数据、指针(非常值得关注)、结构体……) 通过网盘分享的文件:贪吃蛇源码分享(未完成)链接: https://pan.baidu.com/s/1FciXKqFRG3ZFUMnj7JjtTA 提取码…