Unity 统计异常 数据 查看日志的插件

Application.logMessageReceived += HandleLog;

static void HandleLog(string logString, string stackTrace, LogType type)
{
    
    
     if (type == LogType.Error || type == LogType.Exception)
     {
    
    
         logCount += 1;
         log += logCount + ": ";
         log += logString;
         log += "\n";
         log += stackTrace;
         log += "\n"; 
     }
 }

经过测试 是可以获得堆栈信息的 无论是异常 还是 普通的log
可以把这些信息直接发给服务器 方便统计

其实还有一个 Application.logMessageReceivedThreaded
如果你输出的特别多 为了不影响主线程的性能 可以使用这个
不过你要自己维护 以确保线程安全

看官方的话是这么说的

无论该消息是否来自主线程,都将触发此事件。
这意味着处理程序代码必须具有线程安全性。
可以从不同的线程调用该代码,也可以并行调用该代码。
确保只有已允许非主线程调用的处理程序才能访问 Unity API。

感觉还是用logMessageReceived更保险一些。

关于日志方面
https://docs.unity3d.com/cn/2022.2/Manual/LogFiles.html
可以看看官方的介绍

在这里插入图片描述
看 open editor log 可以看错误的文本文件。

有时候 你希望在手机上看log输出 可以看看下面的插件

这个是收费的,非常强悍。
https://www.stompyrobot.uk/tools/srdebugger/

这个是免费的
https://assetstore.unity.com/packages/tools/integration/log-viewer-12047
git https://github.com/aliessmael/Unity-Logs-Viewer/
可以看到很多年没有更新了 不过没有关系 他依然非常好用
在这里插入图片描述
装好插件后 点这个 会在舞台上添加 在这里插入图片描述
然后在project setting里设置Reporter优先级为最高
在这里插入图片描述
好,运行,在游戏里画个圈就会显示了
他大概长这样
在这里插入图片描述

如果你希望 多画几个圈才出现就设置下这个
在这里插入图片描述
在这里插入图片描述
这个是让相同的日志合并显示的。
在这里插入图片描述
设置里可以看到很多有用的信息
在这里插入图片描述
还可以设置界面大小,非常方便。

内存不足时的回调 也要记录一下

Application.lowMemory += OnLowMemory;
private void OnLowMemory()
{
    
    
    Resources.UnloadUnusedAssets();
} 

猜你喜欢

转载自blog.csdn.net/qq_38913715/article/details/128460285