6.4 KiB
6.4 KiB
分层拆分崩溃问题日志分析指南
日志文件位置
日志文件保存在桌面上:NavisworksTransport_Debug.log
详细日志记录内容
现在分层拆分功能已经添加了非常详细的日志记录,包括:
1. 分层拆分管理器日志 (ModelSplitterManager)
会话开始标记
============================================================
[SESSION] 新会话开始 - 2024-12-19 14:30:25
============================================================
[INFO] [ModelSplitter] ========== 开始执行分层拆分 ==========
[INFO] [ModelSplitter] 分层策略: ByFloor
[INFO] [ModelSplitter] 输出目录: C:\Users\Desktop\Output
[INFO] [ModelSplitter] 属性名称: Level
[INFO] [ModelSplitter] 文件命名模式: {ProjectName}_{LayerName}
系统状态监控
[INFO] [ModelSplitter] 系统内存使用: 256 MB
[INFO] [ModelSplitter] 当前进程内存: 512 MB
每个分层处理详情
[INFO] [ModelSplitter] ========== 开始处理分层: Floor_01 ==========
[INFO] [ModelSplitter] 分层元素数量: 1250
[INFO] [ModelSplitter] 输出文件路径: C:\Output\Project_Floor_01.nwd
[INFO] [ModelSplitter] 处理前内存使用: 280 MB
[INFO] [ModelSplitter] 开始导出文件...
[INFO] [ModelSplitter] 处理后内存使用: 320 MB
稳定状态管理
[INFO] [ModelSplitter] 开始确保Navisworks稳定状态...
[INFO] [ModelSplitter] 当前文档: MyProject.nwd
[INFO] [ModelSplitter] 模型数量: 3
[INFO] [ModelSplitter] 当前选择项数量: 0
[INFO] [ModelSplitter] 重置所有隐藏状态...
[INFO] [ModelSplitter] 隐藏状态重置完成
[INFO] [ModelSplitter] 清除当前选择...
[INFO] [ModelSplitter] 选择清除完成
2. 文件导出器日志 (NavisworksFileExporter)
导出会话开始
============================================================
[INFO] [FileExporter] ========== 开始文件导出 ==========
[INFO] [FileExporter] 元素数量: 1250
[INFO] [FileExporter] 输出路径: C:\Output\Project_Floor_01.nwd
[INFO] [FileExporter] 导出策略: VisibilityControl
[INFO] [FileExporter] 文件格式: nwd
内存状态监控
[INFO] [FileExporter] 导出前内存使用: 280 MB
[INFO] [FileExporter] 导出前进程内存: 520 MB
文件保存重试机制
[INFO] [FileExporter] 开始保存文档到: C:\Output\Project_Floor_01.nwd
[INFO] [FileExporter] 尝试保存文档,第 1 次
[INFO] [FileExporter] 文档保存成功: C:\Output\Project_Floor_01.nwd, 大小: 15728640 字节
3. 错误和异常日志
详细错误信息
[ERROR] [ModelSplitter] 处理分层异常: 内存不足
[ERROR] [ModelSplitter] 异常堆栈: at NavisworksTransport.ModelSplitterManager...
[ERROR] [FileExporter] 第 1 次保存尝试失败: 文件被占用
[INFO] [FileExporter] 等待 1000ms 后重试...
错误恢复过程
[INFO] [ModelSplitter] 开始错误恢复...
[INFO] [ModelSplitter] 重置所有可见性状态
[INFO] [ModelSplitter] 清除选择
[INFO] [ModelSplitter] 强制刷新视图
[INFO] [ModelSplitter] 错误恢复完成
如何分析崩溃问题
1. 查看最新的会话日志
打开桌面上的 NavisworksTransport_Debug.log 文件,找到最新的会话分隔符:
============================================================
[SESSION] 新会话开始 - [最新时间]
============================================================
2. 关键崩溃点检查
A. 内存使用情况
查找内存使用记录,看是否有内存急剧增长:
# 搜索内存相关日志
内存使用: 256 MB -> 512 MB -> 1024 MB -> 崩溃
B. 可见性操作
查找可见性重置操作是否成功:
# 查找这些关键步骤
[INFO] [ModelSplitter] 重置所有隐藏状态...
[INFO] [ModelSplitter] 隐藏状态重置完成 # 如果没有这行,说明在重置时崩溃
C. 文件保存操作
查找文件保存过程:
[INFO] [FileExporter] 尝试保存文档,第 1 次
# 如果后面没有"保存成功"或"保存失败",说明在保存时崩溃
D. 异常处理
查找ERROR级别的日志:
[ERROR] [ModelSplitter] 处理分层异常: [具体错误信息]
[ERROR] [FileExporter] 导出异常: [具体错误信息]
3. 常见崩溃模式
模式1:内存耗尽崩溃
[INFO] 系统内存使用: 256 MB
[INFO] 系统内存使用: 512 MB
[INFO] 系统内存使用: 1024 MB
[INFO] 系统内存使用: 2048 MB
# 然后突然中断,没有后续日志
模式2:可见性操作崩溃
[INFO] [ModelSplitter] 重置所有隐藏状态...
# 然后突然中断,没有"重置完成"日志
模式3:文件保存崩溃
[INFO] [FileExporter] 尝试保存文档,第 1 次
# 然后突然中断,没有保存结果日志
模式4:COM对象访问崩溃
[ERROR] [ModelSplitter] 确保稳定状态失败: 对象引用未设置到对象的实例
[ERROR] [FileExporter] 可见性控制导出失败: 无法访问已释放的对象
快速日志查看方法
方法1:使用记事本
- 打开桌面上的
NavisworksTransport_Debug.log - 按
Ctrl+End跳到文件末尾 - 向上滚动查看最新的日志
方法2:使用命令行(推荐)
# 查看最后100行日志
tail -n 100 "%USERPROFILE%\Desktop\NavisworksTransport_Debug.log"
# 或者使用PowerShell
Get-Content "$env:USERPROFILE\Desktop\NavisworksTransport_Debug.log" -Tail 100
方法3:搜索关键词
在记事本中按 Ctrl+F 搜索:
ERROR- 查找所有错误异常- 查找异常信息崩溃- 查找崩溃相关信息内存使用- 查找内存状态SESSION- 查找会话开始
提供技术支持时需要的信息
如果问题仍然存在,请提供以下日志片段:
- 最新会话的完整日志(从SESSION开始到结束或中断)
- 最后的ERROR日志(如果有的话)
- 内存使用趋势(多个内存使用记录)
- 崩溃前的最后几行日志
日志文件管理
清理日志文件
如果日志文件太大,可以在代码中调用:
LogManager.ClearLog(); // 清空日志文件
日志文件位置
- 默认位置:
%USERPROFILE%\Desktop\NavisworksTransport_Debug.log - 可以通过
LogManager.LogFilePath属性获取确切路径
现在你可以运行分层拆分功能,如果再次崩溃,日志文件会记录详细的执行过程,帮助我们精确定位崩溃的原因和位置。