WebGL上导出日志文件

与日志相关的配置选项

Player Setting-》Other Settings-》Stack Track

可以控制各个日志等级类型的输出,ScriptOnly只包括托管代码(C#、Lua),Full包括托管和非托管代码(C、C++)。

一般debug和release下勾ScriptOnly就够。

Publishing Settings-》Enable Exceptions

runtime下异常捕获的处理方式

  • None:不捕获,异常发生后运行不了
  • Explicitly Thrown Exceptions Only:仅捕获Thrown语句显式调用抛出的异常。
  • Full Without Stacktrace:在上面的基础上加上空引用和数组越界访问异常,并且包含非托管代码的堆栈。
  • Full With Stacktrace:在上面基础上加上捕获堆栈。

以上性能消耗由上都下递增,Full模式只建议调试时使用。

Development Build的js代码不会压缩且具有可读性,但遇到Error或Exception时可以看到堆栈跟踪。

文件位置

保存进Application.persistentDataPath目录下的文件,会被保存进IndexedDB,位于/idbfs数据库下的FILE_DATA仓库,包括PlayerPrefs、Unity local文件等,以二进制ArrayBuffer的形式存储。

所以Clogger模块的log日志可以从IndexedDB提取ArrayBuffer,然后解析成string,上报或者导出为Log文件。

IndexedDB没有容量限制。

Demo实现了WebGL导出Log文件,地址点击这里