流程跑完没报错,但数据就是不对,你根本不知道哪一步出了问题。
这是最让人抓狂的情况。我刚开始用影刀RPA做拼多多采集时,全靠“输出日志”硬猜,后来才学会搭三层日志系统,报错定位从半小时缩短到一分钟。
下面把影刀RPA的日志搭建方法拆开讲,从输出指令到运行报告,每一步都精确到按钮。
影刀RPA日志系统的三个层级
场景:流程一多,日志全混在一起,关键信息被淹没。
方法:按“运行日志→文件日志→错误日志”三层分开记录。
- 第一层:运行日志:影刀RPA底部面板自动记录,调试时看
- 第二层:文件日志:用“写入文件”指令存到本地txt,长期追溯
- 第三层:错误日志:Catch块单独记录,带截图和时间戳
操作步骤:
- 在右侧指令面板搜索“输出日志”
- 拖到关键节点后面,内容填变量名
- 在流程开头加“写入文件”指令,创建日志文件
- Catch块中加“写入文件”指令,记录错误详情

# 影刀RPA中执行Python:写三层日志
import datetime
now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
log_path = r"D:\RPA日志\运行日志.txt"
# 第一层:运行日志(控制台输出)

print(f"[{now}] 开始采集拼多多商品")
# 第二层:文件日志(追加写入)
with open(log_path, "a", encoding="utf-8") as f:
f.write(f"[{now}] 采集完成,共{count}条\n")
# 第三层:错误日志(单独文件)
error_path = r"D:\RPA日志\错误日志.txt"
with open(error_path, "a", encoding="utf-8") as f:
f.write(f"[{now}] 错误:{error_msg}\n")
注意:社区版30分钟/天,日志文件别写太频繁,建议每完成一个模块写一次。创业版无限制。
关键节点日志的输出指令与格式
场景:流程有20个步骤,不知道哪一步开始出错。
方法:在关键节点加“输出日志”,格式统一为“模块+状态+变量”。
操作步骤:
- 在“打开网页”后加日志:“[采集] 页面加载完成”
- 在“获取相似元素列表”后加日志:“[采集] 获取到{count}个商品”
- 在“写入行数据到表格”后加日志:“[保存] 写入第{row}行”
- 在翻页循环开头加日志:“[翻页] 当前第{page}页”
| 节点 | 日志格式 | 作用 |
|---|---|---|
| 页面加载 | [采集] 页面加载完成 | 确认没卡在打开 |
| 元素获取 | [采集] 获取到N个商品 | 确认定位有效 |
| 数据写入 | [保存] 写入第N行 | 确认写入成功 |
| 翻页 | [翻页] 当前第N页 | 确认翻页生效 |
# 影刀RPA“输出日志”指令内容示例
# 日志内容:[翻页] 当前第{page}页,已采集{total}条
# 输出位置:运行日志面板 + 文件日志
# 关键:变量要用花括号包裹,影刀会自动替换
错误截图与运行报告的配合使用
场景:流程半夜挂了,早上只能看运行报告,但不知道现场什么样。
方法:Catch块加“截取屏幕”指令,运行报告里能看到截图。
操作步骤:
- Catch块第一行加“截取屏幕”指令
- 保存路径设为
D:\RPA日志\错误截图\ - 文件名用时间戳,如
20261002_021500.png - 加“写入文件”指令,把截图路径写进错误日志
- 流程结束后,在影刀RPA“运行报告”中查看
# 影刀RPA中执行Python:生成带时间戳的截图路径
import datetime
now = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
screenshot_path = rf"D:\RPA日志\错误截图\error_{now}.png"
return screenshot_path
重点:影刀RPA自带运行报告功能,社区版也支持。在客户端左侧“运行报告”里,能看到每个指令的执行状态和耗时。
日志文件定时清理与归档
场景:日志文件越写越大,半年后几个G,打开都卡。
方法:用“获取文件列表”+“删除文件”指令,定期清理30天前的日志。
操作步骤:
- 用“获取文件列表”拿到日志文件夹下所有txt
- 循环遍历,用“获取文件修改时间”指令
- 判断时间是否超过30天
- 超过则用“删除文件”指令删除
# 影刀RPA中执行Python:清理30天前的日志
import os
import datetime
log_folder = r"D:\RPA日志"
now = datetime.datetime.now()
days_30_ago = now - datetime.timedelta(days=30)
for filename in os.listdir(log_folder):
if filename.endswith(".txt") or filename.endswith(".png"):
filepath = os.path.join(log_folder, filename)
mtime = datetime.datetime.fromtimestamp(os.path.getmtime(filepath))
if mtime < days_30_ago:
os.remove(filepath)
print(f"已删除:{filename}")
避坑:清理前先确认日志没有正在被写入,建议放在流程最后执行。
常见问题速查
| 问题 | 原因 | 解决 |
|---|---|---|
| 日志中文乱码 | 编码不是UTF-8 | 写入时指定encoding |
| 运行日志看不到 | 日志级别过滤 | 检查底部面板过滤设置 |
| 截图空白 | 页面未加载完 | 加“等待元素出现” |
| 日志文件被占用 | 没关闭文件句柄 | 用with open自动关闭 |
| 社区版额度不够 | 30分钟/天 | 创业版无限制 |
Q:魔法指令能帮我生成日志系统吗?
A:影刀3.0的魔法指令可以对话式生成日志框架,但节点位置要自己判断。
Q:运行报告能导出吗?
A:可以。在运行报告页面点击“导出”,支持Excel和PDF格式。
Q:日志文件存哪里最合适?
A:建议存到D:\RPA日志\,按日期分文件夹,方便查找和清理。
推荐资源
- 影刀RPA官方学院“日志系统”专题课,免费
- 影刀社区搜索“运行报告”,有日志模板可下载
- 官方文档“输出日志”章节,有完整参数说明
#影刀RPA #RPA自动化 #日志系统 #运行报告 #报错排查
作者:林焱
本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。
