Many times developers need to debug their SD Apps. Depending on the platform used, there are different ways to get logs and traces.
Android has a generic log which gathers information from every app executed on the OS. This log is constantly saving to the device information from all the apps and system services of the device.
A developer can obtain this log:
Directly on the device
Note: This method only works in versions prior to Jelly Bean or rooted devices.
An app on Google Play Store named CatLog enables the user to view, filter, save and search all the information of the log directly on the device.
When executing CatLog on a device, you will see there are tons of messages that update very fast.
How to identify the messages of a specific GeneXus-generated App?
If the application is active it is automatically generating logs and you can search by the keywords "GeneXus" or "GeneXusApplication". Messages will be displayed. When you find one that you are sure is from your app, just longtap on that line and the app prompts you with an option to filter the log for that process ID. There you'll have all the messages of your application.
Result of LongTapping on a line.
The log list after selecting the Process ID filter option.
Connected to a Computer
It is important to know that for any of the following methods to work properly, the device drivers should be correctly installed on the computer.
Catlog on the computer
To execute catlog on the computer, follow the steps below:
- Execute the following command <AndroidSDKDirectory>\platform-tools\adb logcat > log.txt
- Execute the KB from GeneXus.
- Whenever you want the logging to stop, press Ctrl+C on the command prompt window. The result will be a log.txt file with all the logs of what happened on the device in that time lapse.
Real time log
Android SDK has incorporated a debug software named DDMS.
Execute the following file located at: <AndroidSDK>/tools/ddms.bat or <AndroidSDK>/tools/monitor.bat (it can take up to 1 min to start the program).
Main features of ddms:
- See the log of a device. Just select a device or emulator from the left pane and the output will start showing the log.
- Export files from the device to the computer. This can be done on the Menu option Device/ File Explorer.
This will open all the files the emulator or device has. (Some files on devices are not visible except on rooted devices).
To extract a file from the device/emulator, press the save button on selecting a file.
- Take snapshots of the emulator device. This can be done on the Menu option Device / Screen Capture.
Sometimes it is useful to see the interaction of the device with the server to check for errors and debug the rest services.
This can be done in iOS on the device or XCode.
Executing on the KBN
On the KBN the log is disabled by default so it is necessary to enable its Settings / Knowledge Base Navigator.
Once the log is enabled, executing the app is enough to start logging on the device.
To check the log, a new button will appear on the KBN.
Executing with a Mac
When using a Mac, enabling the debug area of the Xcode is enough to see the interaction between Device - Server.
To enable the Debug Area on Xcode, click on the top - right corner button:
Once this is done, execute the app in a simulator or iOS device connected to the Mac through XCode, and all the logging will appear on the debug area.