概述
日志介绍
日志记录了系统的运行情况和功能流程的处理情况,是查看系统状态、进行问题定位的重要工具和手段。日志的功能包括但不限于:记录软件或进程在运行中的状态、动作信息;检测并记录错误以及错误发生的条件、环境、轨迹等,从而用于问题的排查与复现。
本章节将介绍Explorer、Cloud、Engine的日志文件、日志级别等日志相关的内容。
说明: 未在技术人员指导下,禁止手动修改或删除系统产生的日志文件。
Explorer日志
收集日志
通过应用程序开启日志收集功能收集日志。
安装软件后,在桌面右键Explorer快捷方式打开属性。
在快捷方式的“目标”添加“-MiniLogLevel=debug”参数,注意参数前加一个空格。
点击“确定”关闭快捷方式属性面板。
日志输出路径为:%Temp%\logs。
日志清单
日志清单
Explorer日志的文件名和路径如下表所示。
日志分类 | 日志名称 | 日志路径 |
---|---|---|
地图渲染进程监控日志 | Render.FDMAP.log | %temp%\logs |
地图渲染内部进程监控日志 | Render.fdmap_internal.log | %temp%\logs |
场景加载过程日志 | Render.LoadProject.log | %temp%\logs |
场景图层信息日志 | Render.TileLayer.log | %temp%\logs |
软件运行所需dll缺失报警日志 | Render.WinUE.log | %temp%\logs |
实例运行状态日志 | Render.CheckGameBusy.log | %temp%\logs |
SDK调用日志 | Render.Connection.log | %temp%\logs |
SDK调用日志 | Render.ConnectionBridge.log | %temp%\logs |
日志备份说明
如需备份Explorer日志到其他目录或者主机,则需要到日志存储路径“%temp%\logs”下进行手动拷贝备份。
DEBUG操作指南
软件自动开启debug级别日志,获取日志文件后,联系技术支持人员进行日志分析。
日志参数
日志文件名格式为:日志生成的时间_输出日志的软件名.模块名.log。
示例:
Render.FDMAP.log
日志含义
Render.FDMAP.log日志“%temp%\logs”目录下,记录了地图渲染进程的监控日志。
日志命名
地图渲染进程日志文件名:Render.FDMAP.log。
日志格式
[DATE THREADID LEVEL] CONTENT
日志参数
Render.FDMAP.log日志参数
字段名称 | 字段含义 |
---|---|
DATE | 日志生成时间 |
THREADID | 线程id |
LEVEL | 日志级别 |
CONTENT | 日志内容 |
日志示例
Render.fdmap_internal.log
日志含义
Render.fdmap_internal.log日志“%temp%\logs”目录下,记录了地图内部渲染进程的监控日志。
日志命名
地图内部渲染进程日志文件名:Render.fdmap_internal.log。
日志格式
[LEVEL] CONTENT
日志参数
Render.fdmap_internal.log日志参数
字段名称 | 字段含义 |
---|---|
LEVEL | 日志级别 |
CONTENT | 日志内容 |
日志示例
Render.LoadProject.log
日志含义
Render.LoadProject.log日志“%temp%\logs”目录下,记录了场景的加载过程,从这个日志可以分析出打开场景文件所花费的时长。
日志命名
工程文件加载过程日志文件名:Render.LoadProject.log。
日志格式
[DATE THREADID LEVEL] CONTENT
日志参数
Render.LoadProject.log日志参数
字段名称 | 字段含义 |
---|---|
DATE | 日志生成时间 |
THREADID | 线程id |
LEVEL | 日志级别 |
CONTENT | 日志内容 |
日志示例
Render.TileLayer.log
日志含义
Render.TileLayer.log日志“%temp%\logs”目录下,记录了场景图层信息。
日志命名
场景图层信息日志文件名:Render.TileLayer.log。
日志格式
[DATE THREADID LEVEL] CONTENT
日志参数
Render.TileLayer.log日志参数
字段名称 | 字段含义 |
---|---|
DATE | 日志生成时间 |
THREADID | 线程id |
LEVEL | 日志级别 |
CONTENT | 日志内容 |
日志示例
Render.WinUE.log
日志含义
Render.WinUE.log日志“%temp%\logs”目录下,记录了软件运行所需dll缺失的报警日志。
日志命名
软件运行所需dll缺失的报警日志文件名:Render.WinUE.log。
日志格式
[DATE THREADID LEVEL] CONTENT
日志参数
Render.WinUE.log日志参数
字段名称 | 字段含义 |
---|---|
DATE | 日志生成时间 |
THREADID | 线程id |
LEVEL | 日志级别 |
CONTENT | 日志内容 |
日志示例
Render.CheckGameBusy.log
日志含义
Render.CheckGameBusy.log日志在“%temp%\logs”目录下,记录了实例的运行状态,用于分析实例当前是否繁忙,如果busy为1,说明实例忙。实例忙时,无法响应客户端的接口调用请求、也无法进行交互操作。
日志命名
实例运行状态日志文件名:Render.CheckGameBusy.log。
日志格式
[DATE THREADID LEVEL] CONTENT
日志参数
Render.CheckGameBusy.log日志参数
字段名称 | 字段含义 |
---|---|
DATE | 日志生成时间 |
THREADID | 线程id |
LEVEL | 日志级别 |
CONTENT | 日志内容 |
日志示例
Render.Connection.log
日志含义
Render.Connection.log日志“%temp%\logs”目录下,记录了接口调用的详细信息。包括客户端发送过来的原始JSON命令,JSON命令的解析过程、以及SDK版本和服务器版本的判断。
日志命名
接口调用信息日志文件名:Render.Connection.log。
日志格式
[DATE THREADID LEVEL] CONTENT
日志参数
Render.Connection.log日志参数
字段名称 | 字段含义 |
---|---|
DATE | 日志生成时间 |
THREADID | 线程id |
LEVEL | 日志级别 |
CONTENT | 日志内容 |
日志示例
Render.ConnectionBridge.log
日志含义
Render.ConnectionBridge.log日志“%temp%\logs”目录下,记录了接口执行完成后向客户端发送的结果信息。
日志命名
客户端结果信息日志文件名:Render.ConnectionBridge.log。
日志格式
[DATE THREADID LEVEL] CONTENT
日志参数
Render.ConnectionBridge.log日志参数
字段名称 | 字段含义 |
---|---|
DATE | 日志生成时间 |
THREADID | 线程id |
LEVEL | 日志级别 |
CONTENT | 日志内容 |
日志示例
Cloud日志
收集日志
通过Cloud程序自带的日志收集功能收集日志。
运行CloudMaster,在“服务设置”页面勾选“启用日志文件”来开启日志。
注意: 此处的日志开关将会影响到所有的进程,包括子节点进程。
从2023年6月9日起,CloudMaster进程会始终开启日志。后面的Verbose级别选项,此选项仅对渲染进程(RenderAgent.exe)有效,大部分情况下,请不要勾选此项,除非有技术人员要求开启。 因为开启此项会影响性能,同时会占用大量磁盘空间。
- 日志输出目录位于 %temp%\logs\ 下,在此目录下会根据安装运行的版本分别创建对应的子目录,例如如果运行的是6.0,则会创建v6.0文件夹,所运行的Cloud进程的所有日志都位于此文件夹里。
Render\@开头的文件夹对应每一个实例进程,\@后面的数字即是实例的ID。config文件夹里的文件是当前Cloud的配置信息。
日志清单
日志清单
Cloud开启日志,进程启动后会以当前日期创建一个日志文件,如果进程持续运行好几天,这几天产生的日志都在这个文件里,不会第二天重新创建一个文件。
进程启动后,写入的前几行日志格式如下:
进程每次重启都会写入这几行,所以从一个日志文件里,看有多少次这个形式,就知道进程重启了多少次。
Cloud日志的文件名和路径如下表所示。
日志分类 | 日志名称 | 日志路径 |
---|---|---|
CloudMaster进程 | CloudMaster.log | %temp%\logs |
CloudServer进程 | CloudServer.log | %temp%\logs |
NodeService进程 | NodeService.log | %temp%\logs |
实例运行状态 | CheckGameBusy.log | %temp%\logs\Render\@ |
实例LoopTick | MainLoopTick.log | %temp%\logs\Render\@ |
接收线程处理过程 | Commands.log | %temp%\logs\Render\@ |
主线程执行过程 | CommandsInGameThread.log | %temp%\logs\Render\@ |
接口调用信息 | Connection.log | %temp%\logs\Render\@ |
客户端结果信息 | ConnectionBridge.log | %temp%\logs\Render\@ |
工程文件加载过程 | LoadProject.log | %temp%\logs\Render\@ |
WebRTC连接过程 | PixelStreaming.log | %temp%\logs\Render\@ |
客户端输入信息 | PixelStreamingInput.log | %temp%\logs\Render\@ |
WebRTC连接信息 | PixelStreamingSS.log | %temp%\logs\Render\@ |
NVIDIA显卡视频编码信息 | VideoEncoderNVENC.log | %temp%\logs\Render\@ |
日志备份说明
Cloud进程会始终开启日志,如需备份Cloud日志到其他目录或者主机,则需要到日志存储路径“%temp%\logs”下进行手动拷贝备份。
DEBUG操作指南
Cloud在默认情况下,自动开启debug日志。在Cloud出现问题并分析问题原因时,可以直接在日志文件中查看debug级别的日志内容来快速定位故障原因问题。此外,当Cloud出现崩溃等异常情况时,可以在CloudMaster界面中手动开启Verbose级别的日志,开启后,Cloud可以输出更加详细的日志信息,但是会占用比较多的磁盘空间,也会影响渲染性能,请联系技术支持人员使用。
debug级别日志示例
Verbose级别日志示例
日志参数
进程的日志文件名格式如下:日志生成时间_进程名.log。
示例:
渲染进程的日志文件名格式如下:日志生成时间_模块名.log。
示例:
CloudMaster.log
日志含义
CloudMaster.log日志在“%temp%\logs\”目录下,是CloudMaster进程所产生的日志文件。CloudMaster是所有进程的管理者,负责启动各种服务, 监控各个进程的运行,如果有异常退出,则会重启它。CloudMaster.log记录了CloudMaster进程的详细初始化过程,以及其他进程的启动过程,以及启动参数。
日志命名
CloudMaster进程日志名:CloudMaster.log。
日志格式
日志格式为如下:
[DATE] CONTENT
日志参数
CloudMaster.log日志参数
字段名称 | 字段含义 |
---|---|
DATE | 日志生成时间 |
CONTENT | 日志内容 |
日志示例
CloudServer.log
日志含义
CloudServer.log日志在“%temp%\logs\”目录下,是CloudServer进程产生的日志文件。
CloudServer.log是 Cloud运行的重要日志文件,里面包含了Cloud运行的整个过程。日志内容包括:服务运行的各种参数、版本号,各个客户端的连接过程:连接参数、是否成功、连接时长等;实例的启动过程;实例管理接口的调用过程以及结果。
日志命名
CloudServer进程日志名:CloudServer.log。
日志格式
[DATE] CONTENT
日志参数
CloudServer.log日志参数
字段名称 | 字段含义 |
---|---|
DATE | 日志生成时间 |
CONTENT | 日志内容 |
日志示例
NodeService.log
日志含义
NodeService.log日志在“%temp%\logs\”目录下,是NodeService进程产生的日志文件。NodeService.log是 Cloud运行的重要日志文件。日志内容包括:软件版本、系统信息、显卡信息;实例运行的启动过程;实例是否崩溃;实例的实时内存状态(更新频率10秒);通过实例管理接口操作实例的详细参数以及调用结果。
日志命名
NodeService进程日志名:NodeService.log。
日志格式
[DATE] CONTENT
日志参数
NodeService.log日志参数
字段名称 | 字段含义 |
---|---|
DATE | 日志生成时间 |
CONTENT | 日志内容 |
日志示例
CheckGameBusy.log
日志含义
CheckGameBusy.log日志在“%temp%\logs\Render\@”目录下,记录了实例的运行状态,用于分析实例当前是否繁忙,如果busy为1,说明实例忙。实例忙时,无法响应客户端的接口调用请求、也无法进行交互操作。
日志命名
实例运行状态日志文件名:CheckGameBusy.log。
日志格式
[DATE THREADID LEVEL] CONTENT
日志参数
CheckGameBusy.log日志参数
字段名称 | 字段含义 |
---|---|
DATE | 日志生成时间 |
THREADID | 线程id |
LEVEL | 日志级别 |
CONTENT | 日志内容 |
日志示例
MainLoopTick.log
日志含义
MainLoopTick.log日志在“%temp%\logs\Render\@”目录下,与CheckGameBusy.log配合分析使用,如果CheckGameBusy.log分析出实例正忙,从这个日志文件可以分析出实例时从什么时间开始忙的,此日志10秒记录一次。
日志命名
实例LoopTick日志文件名:MainLoopTick.log。
日志格式
[DATE THREADID LEVEL] CONTENT
日志参数
MainLoopTick.log日志参数
字段名称 | 字段含义 |
---|---|
DATE | 日志生成时间 |
THREADID | 线程id |
LEVEL | 日志级别 |
CONTENT | 日志内容 |
日志示例
Commands.log
日志含义
Commands.log日志“%temp%\logs\Render\@”目录下,记录了接口调用的过程。此处的接口调用不是具体的执行过程,接口调用由2个线程处理:接收线程、主线程。接收线程负责接收指令,解析指令,然后把指令投递到主线程具体执行。Commands.log记录的便是接收线程的处理日志。
日志命名
接收线程处理日志文件名:Commands.log。
日志格式
[DATE THREADID LEVEL] CONTENT
日志参数
Commands.log日志参数
字段名称 | 字段含义 |
---|---|
DATE | 日志生成时间 |
THREADID | 线程id |
LEVEL | 日志级别 |
CONTENT | 日志内容 |
日志示例
CommandsInGameThread.log
日志含义
CommandsInGameThread.log日志“%temp%\logs\Render\@”目录下,记录的是接口调用的主线程执行过程。与Commands.log 配合分析,日志也还是成对出现的,中间那一行可以看到从客户端传递过来的接口调用的详细参数信息。
日志命名
主线程执行过程日志文件名:CommandsInGameThread.log。
日志格式
[DATE THREADID LEVEL] CONTENT
日志参数
CommandsInGameThread.log日志参数
字段名称 | 字段含义 |
---|---|
DATE | 日志生成时间 |
THREADID | 线程id |
LEVEL | 日志级别 |
CONTENT | 日志内容 |
日志示例
Connection.log
日志含义
Connection.log日志“%temp%\logs\Render\@”目录下,记录了接口调用的详细信息。与Commands.log、CommandsInGameThread.log配合分析,包括客户端发送过来的原始JSON命令,JSON命令的解析过程、以及SDK版本和服务器版本的判断。
日志命名
接口调用信息日志文件名:Connection.log。
日志格式
[DATE THREADID LEVEL] CONTENT
日志参数
Connection.log日志参数
字段名称 | 字段含义 |
---|---|
DATE | 日志生成时间 |
THREADID | 线程id |
LEVEL | 日志级别 |
CONTENT | 日志内容 |
日志示例
ConnectionBridge.log
日志含义
ConnectionBridge.log日志“%temp%\logs\Render\@”目录下,记录了接口执行完成后向客户端发送的结果信息。
日志命名
客户端结果信息日志文件名:ConnectionBridge.log。
日志格式
[DATE THREADID LEVEL] CONTENT
日志参数
ConnectionBridge.log日志参数
字段名称 | 字段含义 |
---|---|
DATE | 日志生成时间 |
THREADID | 线程id |
LEVEL | 日志级别 |
CONTENT | 日志内容 |
日志示例
LoadProject.log
日志含义
LoadProject.log日志“%temp%\logs\Render\@”目录下,记录了工程文件的加载过程,从这个日志,可以分析出打开工程文件所花费的时长。
日志命名
工程文件加载过程日志文件名:LoadProject.log。
日志格式
[DATE THREADID LEVEL] CONTENT
日志参数
LoadProject.log日志参数
字段名称 | 字段含义 |
---|---|
DATE | 日志生成时间 |
THREADID | 线程id |
LEVEL | 日志级别 |
CONTENT | 日志内容 |
日志示例
PixelStreaming.log
日志含义
PixelStreaming.log日志“%temp%\logs\Render\@”目录下,记录了客户端与渲染进程之间的WebRTC连接建立过程。是云渲染的核心日志,分析此日志文件可以判断连接失败的原因。
日志命名
云渲染WebRTC连接过程日志文件名:PixelStreaming.log。
日志格式
[DATE THREADID LEVEL] CONTENT
日志参数
PixelStreaming.log日志参数
字段名称 | 字段含义 |
---|---|
DATE | 日志生成时间 |
THREADID | 线程id |
LEVEL | 日志级别 |
CONTENT | 日志内容 |
日志示例
PixelStreamingInput.log
日志含义
PixelStreamingInput.log日志“%temp%\logs\Render\@”目录下,记录了云渲染客户端输入信息,包括客户端设置渲染分辨率、鼠标键盘消息(如果开启Verbose的话)。
日志命名
云渲染客户端输入信息日志文件名:PixelStreamingInput.log。
日志格式
[DATE THREADID LEVEL] CONTENT
日志参数
PixelStreamingInput.log日志参数
字段名称 | 字段含义 |
---|---|
DATE | 日志生成时间 |
THREADID | 线程id |
LEVEL | 日志级别 |
CONTENT | 日志内容 |
日志示例
PixelStreamingSS.log
日志含义
PixelStreamingSS.log日志“%temp%\logs\Render\@”目录下,记录了浏览器与渲染进程之间进行WebRTC连接的SDP信息、协议交换信息。分析此文件,可以判断是什么原因导致WebRTC连接建立失败.
日志命名
WebRTC连接信息日志文件名:PixelStreamingSS.log。
日志格式
[DATE THREADID LEVEL] CONTENT
日志参数
PixelStreamingSS.log日志参数
字段名称 | 字段含义 |
---|---|
DATE | 日志生成时间 |
THREADID | 线程id |
LEVEL | 日志级别 |
CONTENT | 日志内容 |
日志示例
VideoEncoderNVENC.log
日志含义
VideoEncoderNVENC.log日志“%temp%\logs\Render\@”目录下,记录了使用NVIDIA显卡进行视频编码的整个过程,包括功能检测、编码器的创建、编码输入输出等。查看此文件,可以分析是什么原因导致视频流显示异常。
日志命名
NVIDIA显卡视频编码日志文件名:VideoEncoderNVENC.log。
日志格式
[DATE THREADID LEVEL] CONTENT
日志参数
VideoEncoderNVENC.log日志参数
字段名称 | 字段含义 |
---|---|
DATE | 日志生成时间 |
THREADID | 线程id |
LEVEL | 日志级别 |
CONTENT | 日志内容 |