You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Dart/Flutter应用中对接Seq日志中心实现日志上报?

Dart/Flutter应用对接Seq日志中心快速实现方案

完全可以在无需从零开发全套适配逻辑的前提下实现对接,核心利用Seq原生支持的通用接入能力,有三个低成本落地方案可选:

方案1:直接调用Seq原生HTTP API(适配全平台,代码量极少)

Seq对外提供了轻量的事件推送REST接口,仅需几十行Dart代码即可完成接入:

  • 提前在Seq后台生成带写入权限的ApiKey
  • 按Seq要求构造结构化日志JSON,核心字段如下:
    • @t:ISO 8601格式的日志时间戳
    • @mt:日志消息模板(支持占位符,和.NET端用法一致)
    • 其他自定义字段:可自由添加业务属性、错误栈、设备信息等
  • 用Dart原生http库发送POST请求到Seq地址的/api/events/raw端点,请求头携带X-Seq-ApiKey即可

参考代码示例:

import 'dart:convert';
import 'package:http/http.dart' as http;

Future<void> sendToSeq(String message, Map<String, dynamic> properties) async {
  const seqUrl = "http://你的Seq地址/api/events/raw";
  const apiKey = "你的Seq ApiKey";
  
  final event = {
    "@t": DateTime.now().toIso8601String(),
    "@mt": message,
    ...properties,
  };
  
  await http.post(
    Uri.parse(seqUrl),
    headers: {
      "X-Seq-ApiKey": apiKey,
      "Content-Type": "application/json",
    },
    body: jsonEncode({"Events": [event]}),
  );
}

还可以自行添加批量发送、失败重试、本地缓冲逻辑,满足生产环境要求。

方案2:复用现有GELF日志组件(开发量最小,推荐)

Seq原生支持GELF(Graylog Extended Log Format)输入,Dart生态已有成熟的GELF日志输出三方组件,无需自行处理日志格式和传输逻辑:

  1. 先在Seq后台新增GELF输入,选择TCP/UDP协议,配置监听端口
  2. 引入Dart的GELF日志组件,配置Seq服务地址、GELF端口、可选ApiKey即可直接使用
  3. 所有日志字段会自动映射到Seq的结构化字段,和现有.NET服务的日志展示逻辑完全兼容

方案3:通过seqcli客户端转发(适合服务端Dart应用)

如果是运行在服务器/桌面端的Dart应用,还可以直接调用官方seqcli客户端完成日志转发,完全不用写对接逻辑:

  • 启动Dart应用时将标准输出/标准错误流接入seqcli的标准输入
  • 配置seqcli的Seq地址和ApiKey,客户端会自动完成日志结构化解析、批量发送、异常重试、本地缓冲等逻辑
  • 适合需要高可用日志上报、不想自行实现传输层逻辑的场景

优先推荐方案2,仅需做简单配置即可完成接入,和现有日志体系的兼容性最好,开发成本最低。

内容的提问来源于stack exchange,提问作者baer999

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 22:06:04