MuMu 模拟器获取 Unity 日志文件
背景
遇到了一个 Bug 只在真机/模拟器打包后出现,Unity 编辑器里一切正常。没法断点调试,只能加日志分析,每次改完代码重新打包再看输出。
直接在 MuMu 模拟器上跑,用 adb logcat 看 Unity 输出的日志,比反复插真机快得多。
Unity 在 Android 上通过 Debug.Log(...)、Debug.LogWarning(...)、Debug.LogError(...) 输出的日志,会进入 Android 的 logcat 系统日志,Tag 通常是 Unity。
获取 Unity 日志
Unity 自带 adb,路径在 Unity 安装目录下:
# Windows
Unity\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools\adb.exe
# macOS
/Applications/Unity/Hub/Editor/<version>/PlaybackEngines/AndroidPlayer/SDK/platform-tools/adb
不需要另外装 Android SDK,直接用这个就行。
先连接 MuMu 模拟器:
adb connect 127.0.0.1:7555
查看 Unity 日志:
adb logcat -s Unity
保存到文件:
adb logcat -v time -s Unity > unity.log
清理日志
每次复现问题前先清空 logcat,避免混入旧日志:
adb logcat -c
命令参数解释
adb logcat -v time -s Unity > unity.log
adb logcat
读取 Android 系统日志。
-v time
设置日志输出格式为 time,每行日志带时间信息。
示例格式:
05-19 14:30:12.345 I/Unity(12345): your log message
-s Unity
只显示 Tag 为 Unity 的日志。Unity 的 Debug.Log、Debug.LogWarning、Debug.LogError 在 Android 上通常都以 Unity 作为 Tag 输出。
> unity.log
命令行重定向,不是 adb 参数。把日志输出写入当前目录下的 unity.log 文件,而不是显示在终端。如果文件已存在,会覆盖原文件。