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

Log do jogo e do sistema

O log do jogo mostra toda a saída da engine, das extensões nativas e da lógica do seu jogo. Os comandos print() e pprint() podem ser usados nos seus scripts e módulos Lua para mostrar informações no log do jogo. Você pode usar as funções no namespace dmLog para escrever no log do jogo a partir de extensões nativas. O log do jogo pode ser lido no editor, em uma janela de terminal, usando ferramentas específicas de plataforma ou a partir de um arquivo de log.

Logs do sistema são gerados pelo sistema operacional e podem fornecer informações adicionais que ajudam a identificar um problema. Os logs do sistema podem conter stack traces de travamentos e avisos de pouca memória.

Logging no console/na tela só mostra informações em builds Debug. Em builds Release, o log do console fica vazio, mas você pode habilitar logging em arquivo no Release definindo a configuração de projeto “Write Log File” como “Always”. Veja detalhes abaixo.

Lendo o log do jogo pelo editor

Quando você executa seu jogo localmente pelo editor ou conectado ao aplicativo de desenvolvimento mobile, toda a saída será mostrada no painel Console do editor:

Editor 2

Lendo o log do jogo pelo terminal

Quando você executa um jogo Defold pelo terminal, o log aparecerá na própria janela do terminal. No Windows e no Linux, você digita o nome do executável no terminal para iniciar o jogo. No macOS, é preciso iniciar a engine de dentro do arquivo .app:

$ > ./mygame.app/Contents/MacOS/mygame

Lendo logs do jogo e do sistema usando ferramentas específicas de plataforma

HTML5

Logs podem ser lidos usando as ferramentas de desenvolvedor fornecidas pela maioria dos navegadores.

  • Chrome - Menu > More Tools > Developer Tools
  • Firefox - Tools > Web Developer > Web Console
  • Edge
  • Safari - Develop > Show JavaScript Console

Android

Você pode usar a ferramenta Android Debug Bridge (ADB) para visualizar o log do jogo e do sistema.

A ferramenta de linha de comando adb é um programa fácil de usar e versátil usado para interagir com dispositivos Android. Você pode baixar e instalar o adb como parte do Android SDK Platform-Tools, para macOS, Linux ou Windows.

Baixe o Android SDK Platform-Tools em: https://developer.android.com/studio/releases/platform-tools. Você encontrará a ferramenta adb em /platform-tools/. Como alternativa, pacotes específicos de plataforma podem ser instalados pelos respectivos gerenciadores de pacotes.

No Ubuntu Linux:

$ sudo apt-get install android-tools-adb

No Fedora 18/19:

$ sudo yum install android-tools

No macOS (Homebrew)

$ brew cask install android-platform-tools

Você pode verificar se o adb funciona conectando seu dispositivo Android ao computador via USB e executando o seguinte comando:

$ adb devices
List of devices attached
31002535c90ef000    device

Se o seu dispositivo não aparecer, verifique se você habilitou USB debugging no dispositivo Android. Abra Settings no dispositivo e procure por Developer options (ou Development).

Habilitar depuração USB

Depois de instalada e configurada, conecte seu dispositivo por USB, abra um terminal e execute:

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

O dispositivo então despejará toda a saída no terminal atual, junto com quaisquer prints do jogo.

Se quiser ver apenas as saídas da aplicação Defold, use este comando:

$ 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: Initialized sound device 'default'
I/defold  ( 6210):
D/defold  ( 6210): DEBUG:SCRIPT: Hello there, log!
...

iOS

Você tem várias opções para ler logs do jogo e do sistema no iOS:

  1. Você pode usar a ferramenta Console para ler logs do jogo e do sistema.
  2. Você pode usar o depurador LLDB para anexar a um jogo em execução no dispositivo. Para depurar um jogo, ele precisa estar assinado com um “Apple Developer Provisioning Profile” que inclua o dispositivo no qual você quer depurar. Empacote o jogo pelo editor e forneça o provisioning profile na caixa de diálogo de empacotamento (empacotamento para iOS só está disponível no macOS).

Para iniciar o jogo e anexar o depurador, você precisará de uma ferramenta chamada ios-deploy. Instale e depure seu jogo executando o seguinte em um terminal:

$ ios-deploy --debug --bundle <path_to_game.app> # OBSERVAÇÃO: não é o arquivo .ipa

Isso instalará o app no seu dispositivo, iniciará o app e anexará automaticamente um depurador LLDB a ele. Se você é novo no LLDB, leia Getting Started with LLDB.

Lendo o log do jogo pelo arquivo de log

Use a configuração de projeto “Write Log File” em game.project para controlar o logging em arquivo:

  • “Never”: não escreve um arquivo de log.
  • “Debug”: escreve um arquivo de log somente para builds Debug.
  • “Always”: escreve um arquivo de log para builds Debug e Release.

Quando habilitada, qualquer saída do jogo será gravada no disco em um arquivo chamado “log.txt”. Veja como extrair o arquivo se você executar o jogo no dispositivo:

iOS
Conecte seu dispositivo a um computador com macOS e Xcode instalado.

Abra o Xcode e vá para Window ▸ Devices and Simulators.

Selecione seu dispositivo na lista e então selecione o app relevante na lista Installed Apps.

Clique no ícone de engrenagem abaixo da lista e selecione Download Container....

baixar container

Depois que o container for extraído, ele será mostrado no Finder. Use o botão direito no container e selecione Show Package Content. Localize o arquivo “log.txt”, que deve estar em “AppData/Documents/”.

Android
A possibilidade de extrair o “log.txt” depende da versão do sistema operacional e do fabricante. Aqui está um guia passo a passo curto e simples.