跳到主要内容

发送中控日志 (LCC.log)

声明

LCC.log(id, ...)
LCC.log(log_map)

参数

  • id
    整数型,范围 1~6,对应中控的 6 条日志通道
  • ... 可变参数,字符串、表或 ImageObject;普通表会通过 table.deep_dump 序列化,字符串中可使用 [DATE][LINE] 占位符
  • log_map 表类型,键为日志别名(需通过 set_log_aliases 配置),值可以是字符串、表、ImageObject,或包含图文内容的数组表

返回值

说明

发送前会校验是否已配置中控地址,未配置则抛出错误。
遇到网络异常会循环重试直到成功,重试期间会通过 sys.toast 提示。
使用别名表时,只发送匹配到别名的键,并按别名对应的列号写入。
如果别名表没有任何匹配键,本次调用不会发送请求。

示例

LCC.log(1, "[DATE] 开始同步", { count = 128 })

LCC.log({
["状态"] = "同步完成",
["错误"] = "0"
})

图像日志

LCC.log 支持文本、普通表和图片混排。传入 ImageObject 时会默认按 PNG 写入日志;传入 data:image/png;base64,...data:image/jpeg;base64,... 形式的字符串时,也会自动识别为图片。

LCC.log(1, "开始", screen.image(100, 100, 200, 200), "结束")

如果需要减小传输体积,可以自行把图片压缩成 JPEG data URL 后传入:

local img = screen.image(100, 100, 200, 200)
local jpg = "data:image/jpeg;base64," .. img:jpeg_data(0.7):base64_encode()
LCC.log(1, "压缩截图", jpg)
img:destroy()

别名表形式也支持图像日志。普通表如果不包含图片,仍按 table.deep_dump 输出;数组表中包含图片时,会按数组顺序渲染图文内容。

LCC.set_log_aliases({ "状态", "错误" })

LCC.log({
["状态"] = { "你好", screen.image(243, 247, 336, 345), "世界" },
["错误"] = "0"
})

图片日志更适合用于诊断问题或记录关键现场,不建议作为常规进度日志的一部分。单张图片最大 20 MiB,单条日志的图片合计最大 20 MiB,单张图片最大 1200 万像素,每条日志最多 8 张图片;超过限制或图片格式不支持时,LCC.log 会直接报错。图片会随日志请求一起上传;设备较多、截图区域较大或日志输出很密集时,图片内容会明显增加局域网传输、服务端解码和落盘压力,可能拖慢其它控制请求的响应。建议只在关键步骤记录截图,尽量裁剪到需要观察的区域;如果需要持续采样,优先降低频率或自行压缩成 JPEG data URL。

日志历史中会显示缩略图,点击缩略图可打开原图预览,并可以从预览中用取色器打开。导出包含图片的日志时,可以选择仅导出纯文本,或导出包含原图和可浏览 HTML 的 zip 文件;如果某张原图文件已经缺失,HTML 中会显示“图片文件缺失”占位,其它日志内容和仍存在的图片会继续导出。