A Brief Guide to reading OS logged data from ManagdWALplus

Due to extensive internal exception and general execution information reporting, it is possible to “peek” into the inner workings of the ManagdWALplus app. This comes in handy when hunting for the causes of seemingly unexplainable behavior. Cause can either be misconfigurations, or programmatic errors (aka app errors). The OS log of the iOS itself is used widely for reporting from the app, and is available for any Mac directly connected to the device. ManagdWALplus offers three general levels of error codes: 1 for errors that is handled as exceptions, 2 for circumstances that are handled programmatically but that may signal mishaps in configurations that are handled using defaults and similar, and verbose informational messages that for instance explains how configurations read are handled using debug level 3. Level 1 is the default setting, consuming less processing time and power, which means that during debyg, debug level must often be raised to 2 or 3.

Console message setup

  1. Connect the MacOS device to the iOS device.
  2. Accept connections from the MacOS device in the iOS device.
  3. Start the Console-app on the MacOS device.
  4. Select the iOS device.
  5. Set up a filter (see section below)

Search/filter setup

An iOS device may generate dozens of messages per second. This will quickly garble the view of the Console message list. Search/filters are essential to handle this. In the filter/search field (in the upper right corner), do the following:

Type a sensible search/filtering criteria. This will by default be of type “Any”, as shown here, with a word of your choice as contained in the string, typically WAL for the ManagdWALplus app.

Filtering can be be tailored, and performed on basis of parameters such as Process, Subsystem and Category as shown below. Criterias such as Contains (default), Equals, Does Not Contain and Does Not Equal can be applied as well:

Filter/search criteria for WAL event logging.
Console logging filters.

Contains and Equals are the most likely candidates in this context.

The most commonly used search/filter functions are shown in the table below, with explanations:

Filter nameUseExample
SubsystemType the reverse-domain name style name of subsystem (aka app). This will show all related events of this subsystem, including those primarily handled by iOS or related modules.com.royalcoudsystems.ManagdWALplus
ProcessAll events related to the app, including processes spawned by iOS to handle user interface elements (scenes), webview etc.
CategoryApp-defined categories.Please refer to Table 2 below.
Table 1: Relevant filter functions of the Apple MacOS Console, with examples,

Using Any or Category, it will come in handy to filter/search for “WAL_”, which will match all app-defined logging from the ManagdWAL/plus, as shown in this illustration;

This can be further drilled down to one of the functional areas of the app, such as WAL_Settings for messages relating to the reading of settings from XML of EMM/MDM/MAM/UEM systems and predefined (bundled) WALconfig.plist settings. Please refer to Table 2 below, for explanations of the different categories of WAL_ – names of the different functional areas.

Category (WAL_ – name)MeaningUse
WAL_Main delegateCaptures main state transitions of the app, such as creation, stop, going into or out of background.To study possible connection with possible erroneous behavior in areas related to these state state changes.
WAL_AudioAudio alert eventsShows where audio alerts are (or would have been) given (if audio is turned off).
WAL_Main viewResponsible for handling of user interface elements such as qLIs, and web view.Tracing of qLI use, display of URL/URI/URNs before launch.
WAL_Login viewHandling admin loginPassword handling, redirection to administration.
WAL_Admin viewHandling selections of local admin functionsRedirection to local iOS device administration. Display of settings (upcoming feature).
WAL_TimersFunctionality for timed eventsStartup and disabling of recurring and specific time events.
WAL_SettingsDisplay of all configuration settings when read.XML settings (existing and new) from EMM/MDM/MAM/UEM systems, as well as bundled WALconfig.plist settings.
WAL_Read SettingsSubsystem of WAL_Settings, performing actual reads.XML and WALconfig.plist readouts.
WAL_HeartbeatSending log-data to remote logging system.Primarily for heartbeat data, with payload such as freely configurable data and data collected on device (device ID, battery charge status etc.)
WAL_NetworkNetwork support functionalityNetwork availability checks.
Table 2: WAL system events and messages per category name.

Document Revision: March. 2020. Nov. 2024. Doc. rev.: 1.1 Valid from app rev 0.91.7.