- Debug.Log
- Success!
- Submission failed
- Declaration
- Declaration
- Parameters
- Description
- Log files
- Editor-related log locations
- Linux
- macOS
- Windows
- Player-related log locations
- Real-time дебаг Android и iOS приложений на Unity
- Лог файлы
- Редактор
- Webplayer
- Standalone проигрыватель
- Android
- Tizen
- Windows Store
- WebGL
- Доступ к лог файлам в Windows
Debug.Log
Success!
Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.
Submission failed
For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.
Declaration
Declaration
Parameters
message | String or object to be converted to string representation for display. |
context | Object to which the message applies. |
Description
Logs a message to the Unity Console.
Use Debug.Log to print informational messages that help you debug your application. For example, you could print a message containing a GameObject.name and information about the object’s current state.
You can format messages with string concatenation:
Debug.Log(«Text: » + myText.text);
You can also use Rich Text markup.
If you pass a GameObject or Component as the optional context argument, Unity momentarily highlights that object in the Hierarchy window when you click the log message in the Console . Use a context object when you have many instances of an object in a Scene so that you can identify which one produced the message. Example 2 , below, illustrates how this feature works. When you run this example, first click one of the cubes it creates in the Scene. The example prints a log message to the Console . When you click on the message, Unity highlights the context object in the Hierarchy window — in this case, the cube you clicked on in the Scene.
Example 1: Show some uses of Debug.Log:
Example 2: Show selection of a clicked GameObject:
Note that Unity also adds Debug.Log messages to the Editor and Player log files. See Log Files for more information about accessing these files on different platforms.
Is something described here not working as you expect it to? It might be a Known Issue. Please check with the Issue Tracker at issuetracker.unity3d.com.
Copyright ©2021 Unity Technologies. Publication Date: 2021-11-26.
Источник
Log files
Unity produces log files for the Editor, package manager, and development players. You can use these log files to understand where any problems happened in your application.
Unity adds all messages, warnings, and errors from the Console window A Unity Editor window that shows errors, warnings and other messages generated by Unity, or your own scripts. More info
See in Glossary to the log files. To add your own messages to the Console window, and the logs, use the Debug class.
Each operating system stores the log files in different locations. The default locations are outlined on this page, but you can also use certain command line arguments to control when and where Unity generates log files. For more information, see the Command line arguments documentation.
Editor-related log locations
You can access the Editor logs from the console window. To do this, open a Console Window (menu: Window > General > Console) and select Open Editor Log from the Console window menu.
Linux
Log type | Log location |
---|---|
Editor | |
Package manager |
macOS
On macOS, you can also access Unity’s logs via the Console.app utility
Log type | Log location |
---|---|
Editor | |
Package manager |
Windows
On Windows, the Package Manager and Editor logs are placed in folders which aren’t shown in the Windows Explorer by default. To view the AppData folder, you must enable the Hidden Items setting on Windows. For more information on how to do this, see Microsoft’s documentation on View hidden files and folders in Windows.
On Windows, a standard out stream doesn’t exist by default, so you must launch the Editor with a valid configured stdout stream, as a child process from a CI system. If you specify — to send output` to stdout`, then you won’t see the output in the console window.
Log type | Log location |
---|---|
Editor | %LOCALAPPDATA%\Unity\Editor\Editor.log |
Package manager | User account: %LOCALAPPDATA%\Unity\Editor\upm.log SYSTEM account: %ALLUSERSPROFILE%\Unity\Editor\upm.log |
Crash files | %TMP%\CompanyName\ProductName\Crashes Note: You can overwrite the location of the folder location with the -crash-report-folder command line argument. |
Player-related log locations
To view the Player log, open a Console Window (menu: Window > General > Console) and select Open Player Log from the Console window menu. You can also navigate to the following folder:
Источник
Real-time дебаг Android и iOS приложений на Unity
Когда разработка проекта идёт на компьютере, проблемы просмотра лога не встаёт. Но когда начинаешь разрабатывать на планшете, то всё становится гораздо печальнее. Разработчики движка добавили много разных полезных вещей в профайлер, но к сожалению забыли о простой консоли, чтобы переключившись на её вкладку разработчик мог смотреть сообщения от своей игры и отправлять какие-то консольные команды прямо с компьютера на планшет.
Это упущение мы сейчас и будем исправлять.
Если кратко, мы создадим таблицу в Google Docs, и скрипт, который будет при вызове добавлять туда значение. И создадим скрипт в движке, который будет слушать команды типа Debug.Log() и отправлять их нашему скрипту. Дел на 10 минут, но удобство повышается значительно. Если у вас в проекте реализована консоль, то можно сделать чтобы скрипт отправлял отклик (скажем содержимое написанного вами в какой-то ячейке таблицы), можно это передавать в качестве команды в консоль.
Работает всё довольно быстро, у меня интернет 50 mbit, сообщения появляются практически мгновенно. Таблица Google обновляется сама, рефрешить не надо.
Сначала простейший вариант, для понимания сути.
1. Настройка серверной части.
Для серверной части нужен аккаунт Google, потому что создавать таблицу мы будем в Google Drive.
В меню создайте скрипт (Tools -> Script Editor -> Script as Web App).
Удалите созданный темплейт и скопируйте следующий код:
. В коде id 0Ap2rwVyty8rZdElOTFhlTG9BSEZGY29BZDlpQWdMR2c надо заменить на id вашей страницы, его можно взять из URL созданного вами Spreadsheet.
При вызове этого скрипта он будет брать созданную вами таблицу, и добавлять в последнюю строку время и значение, которое пришло по запросу GET с ключом p.
Сохраните скрипт под именем, к примеру, RemoteLogger.
Теперь надо создать версию (File -> Manage versions -> Save new version).
Теперь мы можем опубликовать его (Publish -> Deploy as Web App) с такими настройками:
. Execute the app as: me
. Who has access to the app: Anyone, even anonymous
После нажатия Deploy Google даёт нам URL такого вида:
script.google.com/macros/s/AKfycbyubkC0TQbyrRYvVD9nYezvxuDkya0Asbvff67EUK0G0oqFndws/exec
при его запуске в созданной вами таблице появится строка со временем запуска и значением undefined, если в конце дописать ?p=test
script.google.com/macros/s/AKfycbyubkC0TQbyrRYvVD9nYezvxuDkya0Asbvff67EUK0G0oqFndws/exec?p=test
то в таблице появится строка со словом «test»
Можно считать, что серверная часть работает нормально.
2. Клиентский Unity-скрипт.
Создайте скрипт, к примеру RemoteLogger.cs и поместите туда следующий код:
. Не забудьте поменять значение url на адрес вашего скрипта.
Этот скрипт слушает лог, берёт сообщение, кодирует для передачи по методу GET и отсылает его нашему скрипту, чтобы он добавил его в таблицу.
После добавления к GameObject и запуска, на открытой в вашем браузере таблице должно появиться «Hello world!» (таблица обновляется автоматически). Если этого не произошло, то вероятно вы забыли поменять id таблицы, url или при публикации скрипта настроили права неправильно.
3. Батчинг.
Если в программе много сообщений, то слишком расточительно создавать для каждого новый запрос. Мы будем передавать до 10 сообщений зараз, в зависимости от того, сколько есть на данный момент.
Сложного в изменениях ничего нет, поэтому я просто опубликую код и поясню кратко.
Сначала исправляем скрипт на сервере:
То есть перебираются параметры от p0 до p9, если есть значение — то оно добавляется.
Теперь код класса RemoteLogger.cs
Мы сделали чтобы логгер не исчезал при загрузке следующей сцены. Так же мы добавили очередь, в которую добавляются сообщения игры, и из которой периодически они отсылаются. Так же создали семафор, чтобы не было слишком много соединений на 1 момент.
В зависимости от ваших нужд, можно передавать в таблицу что это за сообщение error/warning/message и подсвечивать его соответсвенно, как это сделано в Unity.
Можно передавать стек, если вам важно видеть, откуда было оно отправлено.
Теоретически можно использовать построение графиков.
Можно сделать обратную связь, и передвать какие-то команды в игру, там уже слушая отклик скрипта и передавая его в консоль. Добавляется легко.
Можно консоль не делать, а добавить пункты меню, к примеру «Make screenshot», «Enable cheats», и отправлять их.
В общем, есть возможности для доработки и расширения. Делитесь вашими идеями и их реализациями, возможно они кому-нибудь пригодятся. 🙂
PS: Большое спасибо автору этой статьи из песочницы.
Источник
Лог файлы
Бывают случаи, когда вам требуется получить информацию из логов вашей webplayer сборки, вашего standalone проигрывателя, устройства, на котором вы запускали своё приложение или из редактора. Обычно вам требуется сперва найти эти логи, если у вас возникла проблема и вы хотите узнать что пошло не так.
На Mac логи webplayer’а, standalone проигрывателя и редактора можно получить с помощью стандартной утилиты Console.app .
На Windows логи webplayer’а и редактора находятся в скрытых папках, которые не видны по умолчанию в Проводнике Windows. См. ниже.
Редактор
Лог редактора можно открыть прямо в Unity с помощью меню Open Editor Log в окне Console.
Mac OS X | |
Windows XP | C:\Documents and Settings\имяпользователя\Local Settings\Application Data_\Unity\Editor\Editor.log |
Windows Vista/7 | C:\Users\имяпользователя\AppData\Local\Unity\Editor\Editor.log |
На Windows, файл лога редактора находится в локальной папке данных приложений (AppData): %LOCALAPPDATA%\Unity\Editor\Editor.log, где LOCALAPPDATA соответствует значению в CSIDL_LOCAL_APPDATA.
На Mac можно получить доступ ко всем логам с помощью стандартной утилиты Console.app .
Webplayer
/Library/Logs/Unity/WebPlayer.log and Player.log
На Windows лог webplayer’а хранятся во временной папке: %TEMP%\UnityWebPlayer\log\log_UNIQUEID.txt, где TEMP соответствует значению GetTempPath.
Standalone проигрыватель
/Library/Logs/Unity/Player.log
/.config/unity3d/ИмяКомпании/ИмяПродукта/Player.log
На Windows, EXECNAME_Data — это папка рядом с исполняемым файлом игры.
Учтите, что у Windows и Linux standalone сборок расположение лог файла можно менять (или вообще отключать ведение лога). См. страницу о командной строке для дополнительной информации.
Лог устройства можно просматривать в XCode через GDB консоль или Organizer Console. Последнее полезно для получения логов “падения”, когда ваше приложение не было запущено через отладчик XCode.
The Troubleshooting and Bugreporting guides may be useful for you.
Android
Лог устройства можно просматривать через консоль logcat. Используйте приложение adb (которое находится в папке Android SDK/platform-tools directory ) с параметром logcat :
Другой способ изучения логов LogCat — использовать Dalvik Debug Monitor Server (DDMS). DDMS можно запустить либо из Eclipse , либо из папки Android SDK/tools . DDMS также предоставляет множество других инструментов для отладки.
Tizen
Лог устройства можно просматривать через sdb console. Используйте приложение sdb (которое находится в папке Tizen SDK/tools directory ) с параметром dlog в конце:
If you would like to only see messages from Unity you may add a filter. The filter specification is similar to that for Android. The following command will display only messages for the Unity log.
Windows Store
Windows Store Apps (On Desktop) __ | %userprofile%\AppData\Local\Packages |
\TempState\UnityPlayer.log | |Windows Phone__
Windows Phone IsoStoreSpy.
WebGL
On WebGL, log output is written to the browser’s JavaScript console.
Доступ к лог файлам в Windows
На Windows лог файлы находятся в папках, которые по умолчанию скрыты. В Windows XP вы можете включить видимость скрытых папок в Проводнике Windws с помощью Сервис->Свойства папки…->Вид (вкладка) .
На Windows Vista/7 вы можете сделать видимой папку AppData в Проводнике Windows с помощью Сервис->Свойства папки…->Вид (вкладка) . Меню Сервис по умолчанию скрыто, но может быть включено с помощью одиночного нажатия клавиши ALT.
Источник