发送中控日志 (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 中会显示“图片文件缺失”占位,其它日志内容和仍存在的图片会继续导出。