Manuals
Manuals




This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English

游戏和系统日志

游戏日志保存了引擎的所有输出, 包括原生扩展和脚本代码上的输出. 用 print()pprint() 函数就能在日志里留下游戏输出. 可以使用原生扩展 dmLog 下的函数读写日志文件. 各种文本阅读编辑器都能打开日志文件.

系统日志是由操作系统提供的, 也许会对调试游戏有所帮助. 系统日志可以记录应用崩溃时的调用堆栈和内存不足等信息.

游戏日志只会在 debug 模式的编译版本中出现. 发布版本会去掉所有日志输出.

用编辑器查看游戏日志

当在编辑器本地或者连接了 mobile 开发版应用 运行游戏时, 所有日志输出都能做编辑器控制台看到:

Editor 2

用控制台查看游戏日志

当使用控制台启动游戏时, 日志文件也会打印在当前控制台上. 在 Windows 和 Linux 控制台上直接打游戏可执行文件名即可. 在 macOS 控制台上要打 .app 文件里面的游戏引擎名:

$ > ./mygame.app/Contenst/MacOS/mygame

不同平台的日志读取

HTML5

绝大多数浏览器都提供了显示日志输出的控制台.

  • Chrome - 菜单 > 更多工具 > 开发者工具
  • Firefox - 工具 > 网络开发者 > 网络控制台
  • Edge
  • Safari - 开发 > 显示JavaScript控制台

Android

可以使用 Android Debug Bridge (ADB) 工具来查看游戏和系统日志.

adb 命令行工具是一个多功能易使用的用来与 Android 设备进行交互的工具. 可以在 Mac, Linux 或者 Windows 上下载 Android SDK Platform-Tools 来安装 adb.

下载 Android SDK Platform-Tools 地址: https://developer.android.com/studio/releases/platform-tools. adb 工具就在 /platform-tools/ 里. 或者, 也通过各个平台的软件包管理器下载安装.

Ubuntu Linux 上:

$ sudo apt-get install android-tools-adb

Fedora 18/19 上:

$ sudo yum install android-tools

macOS (Homebrew) 上

$ brew cask install android-platform-tools

通过如下代码让 adb 通过电脑 USB 与 Android 设备进行连接:

$ adb devices
List of devices attached
31002535c90ef000    device

如果连接不上, 确保在 Android 设备上开启了 USB debugging. 在设备 设置 里找 开发者选项 (或称 开发选项).

Enable USB debugging

工具安装好之后, 通过 USB 连接你的设备, 启动控制台, 输入:

$ cd <path_to_android_sdk>/platform-tools/
$ adb logcat

设备会把所有日志信息打印在当前控制台上, 包含游戏输出信息.

要想只查看 Defold 输出的日志信息, 可以这么输入:

$ cd <path_to_android_sdk>/platform-tools/
$ adb logcat -s defold
--------- beginning of /dev/log/system
--------- beginning of /dev/log/main
I/defold  ( 6210): INFO:DLIB: SSDP started (ssdp://192.168.0.97:58089, http://0.0.0.0:38637)
I/defold  ( 6210): INFO:ENGINE: Defold Engine 1.2.50 (8d1b912)
I/defold  ( 6210): INFO:ENGINE: Loading data from:
I/defold  ( 6210): INFO:ENGINE: Initialised sound device 'default'
I/defold  ( 6210):
D/defold  ( 6210): DEBUG:SCRIPT: Hello there, log!
...

iOS

可以使用 控制台工具 读取游戏和系统日志. 可以使用 LLDB 调试器连接设备上运行的游戏. 调试前确保设备上存有该应用的 “Apple Developer Provisioning Profile”. 从编辑器的打包对话框那里提供档案文件 (只能在 macOS 平台上打包 iOS 应用).

需要一个叫做 ios-deploy 的工具才能进行调试. 命令如下:

ios-deploy --debug --bundle <path_to_game.app> # 注意: 不是 .ipa 文件

它会把应用安装到设备上, 启动应用并且把 LLDB 调试器连接到应用上. 如果不熟悉 LLDB, 请参考 LLDB 基础教程.

从日志文件中读取日志信息

如果你在 game.project 文件里打开了 Write Log 项, 所有游戏输出都会被记录到硬盘上, 保存为 “log.txt” 文件. 下面介绍了从设备上获取日志文件的方法:

iOS
把设备连接到安装有 macOS 和 Xcode 的电脑上.

启动 Xcode 选择 Window ▸ Devices and Simulators.

在列表中选择你的设备, 然后在 Installed Apps 列表中选择你的游戏应用.

点击列表下方的齿轮图标选择 Download Container....

download container

容器被下载解压之后就可以在 Finder 中看到了. 右键单击容器选择 Show Package Content. 找到 “log.txt”, 一般位于 “AppData/Documents/”.

Android
log.txt” 的获取取决于操作系统版本和制造商. 这里有一个简单的 步骤教程.