Weldone 项目日志与配置读取
Overview
定位并读取 Weldone 焊接软件在本机的运行日志(Serilog 文本格式)和项目配置 JSON(DeviceSetting、RobotPlanSetting、WorkspaceSetting 等),用于排障、检查运行状态、核对设备/规划参数。所有路径基于 %APPDATA% 环境变量动态解析,不依赖任何写死的用户名。
路径解析规则(核心)
Weldone 的配置与日志位置由三层目录构成:
%APPDATA%\Roboticplus\Weldone\1.0.x\ ← 配置根目录(固定)
├── ProjectConfig.json ← 读 ProjectFolder 字段
├── DeviceSetting.json ← 全局设备清单
└── <ProjectFolder>\ ← 当前项目子目录(如 KukaTest、JuLi)
├── *.json ← 项目级配置(见 references)
├── Logs\logs-YYYYMMDD[_HHMMSS].log ← 运行日志(本 skill 的主要目标)
├── Debug\ ← 规划中间结果 JSON
└── ProductionData\ ← 生产数据快照
关键原则:
- 配置根目录永远是
%APPDATA%\Roboticplus\Weldone\1.0.x,其中%APPDATA%在 Windows 等于C:\Users\<当前用户>\AppData\Roaming。禁止在任何输出或脚本里写死mini-pc之类的用户名。 - 哪个项目是"当前项目"由
ProjectConfig.json的ProjectFolder字段决定,不要假设;总是先读它。
执行流程
1. 定位路径与日志清单
优先运行脚本(确定性、token 高效):
python "<skill>/scripts/resolve_project.py" --list
输出:配置根目录、当前项目名、项目目录、日志目录,以及日志文件按修改时间倒序的清单(含文件大小、修改时间,并对 0KB 文件标注提示)。
需要看其它项目时加 --project <名字>:
python "<skill>/scripts/resolve_project.py" --list --project JuLi
若手头没有可用的 Python,按上述路径规则用 Bash + $APPDATA/Read 工具自行定位(Git Bash 下用 "$APPDATA/Roboticplus/Weldone/1.0.x")。
2. 读取日志
日志在 <项目目录>/Logs/ 下。读取策略:
- 定位最近一次运行:清单里修改时间最新、且带
_HHMMSS后缀的文件通常就是最近一次启动。无后缀的(如logs-20260417.log)是按日滚动的旧格式。 - 目标式检索优先:大文件(数百 KB ~ 数 MB)不要整读。用
Grep工具按级别或关键词过滤:- 按级别:
Greppattern\[(ERR|FTL|WRN)\]—— 排障时先抓异常和警告。 - 按异常关键词:报错堆栈里的类名/方法名/异常类型。
- 按时间窗口:先
Grep出该次启动的时间范围,再读对应行。
- 按级别:
- 中小文件可直接用
Read工具读取(默认 2000 行)。 - 日志行格式:
2026-06-29 11:31:48.333 +08:00 [INF] 消息,级别缩写见 references。
3. 读取配置 JSON
项目目录与配置根目录下的 *.json 都可读。常见用途:
- 核对设备连接(
DeviceSetting.json:DeviceInfos[].ConnectInfo.IP/Port) - 核对机器人 TCP / 用户坐标系(
RobotPlanSetting.json:TcpSettings、UserFrame) - 核对工位布局(
WorkspaceSetting.json) - 核对当前激活项目(
ProjectConfig.json)
字段含义速查见 references/config-files.md。
读取方式:直接用 Read 工具读绝对路径。路径用脚本输出的项目目录拼文件名,或用 $APPDATA 表达式。
重要行为约定
- 0KB 文件必须实读确认:磁盘上
size==0不代表真空——文件系统可能未刷新文件大小元数据,实际打开仍有内容。永远不要因 size==0 就跳过日志;必须真正Read/打开才能判定。真 0 字节本身也是有价值的信号(通常意味着启动即崩溃)。 - 只读不改:日志与配置文件是运行时产物。除非用户明确要求修改,只读不写。改动生产配置前必须向用户确认。
- 用户名动态化:任何输出给用户的路径、生成的脚本、示例命令,都必须用
%APPDATA%或$APPDATA表达,不得出现C:\Users\具体用户名。 - 跨平台兜底:脚本在
APPDATA缺失时回退到USERPROFILE\AppData\Roaming,再退到HOME(用于 Git Bash 环境)。
Resources
scripts/
resolve_project.py—— 从%APPDATA%动态解析配置根目录,读ProjectConfig.json取当前项目,列出日志(含 0KB 标注)。支持--list与--project <名>。所有路径解析的首选入口。
references/
config-files.md—— 全部配置 JSON 的文件清单、关键字段含义、日志格式与级别缩写、0KB 处理规则、Debug 目录说明。读取配置或解读日志字段时加载此文档。