Log files
In case of problems, Resco support may occasionally ask you for log files.
Sending logs from mobile apps
- Go to the app's About section – typically available on the Home screen.
- Tap the scroll icon
in the top right corner of the app. - Add any details as necessary and then tap the send icon.

| Tip | If you can’t find the About section in your app, please contact your CRM administrator (or the person responsible for Resco Mobile CRM in your company), to guide you to the About section, or to place the About section to a visible place in the Resco Mobile CRM application customization. |
Log files in Windows versions of mobile apps
This section is aimed at technical staff responsible for troubleshooting performance potential or functional issues with Resco mobile apps.
Depending on your application version, the log files might be stored in various locations:
In case of Windows 7 Desktop application, the application data are stored in the following folder: %APPDATA%\MobileCRM, which is typically: C:\Users\{UserName}\AppData\Roaming\MobileCRM
In case of Windows Store (Win10) version, it’s %LOCALAPPDATA%\Packages\Resco.MobileCRM_{StoreId}\LocalState\MobileCRM, which is typically: C:\Users\{UserName}\AppData\Local\Packages\Resco.MobileCRM_{StoreId}\LocalState\MobileCRM
- crash.log
- contains information about exceptions, including problems with third-party integrations
- syncLog.txt
- contains information about your recent synchronizations
Sending logs from Woodford
| Warning | This function is not available in the current version of Woodford. |
The legacy Silverlight version of Woodford had the function to display and send logs - select Logs from the Administration menu.
Header
Right after installation, the log contains at least a header like this:
MobileCRM 8.3.2.0 Application name and version 2xxxxxx9-Dxxx-4xxx-Axxx-4xxxxxxxxx6 Device ID MyiPad Device name iPad Air 2 4G (iPad5,4) Device model iPhone OS 9.1.164bit Device OS AppStore Version Application type
- Application name and version
- The application name reflects the Title set in the project's Branding section in Woodford. It can be one of the identifiers whether the user received the right project. The application version number always reflects the installed app’s version.
- Device ID
- This ID number depends on theoperating system a device runs.
- For Apple devices see this link
- For Android devices see this link
- For Windows Store version (including Windows 10 Mobile) we use this code to get the ID:
var nonce = "RescoMobileCRM".ToCharArray().Select(c=>(byte)c).ToArray(); var token = Windows.System.Profile.HardwareIdentification.GetPackageSpecificToken(nonce.AsBuffer()); var x = token.Id.ToArray(); return Convert.ToBase64String(x);
- For the Windows desktop version, we use this code to get the ID:
string id = null; GetSystemInfo(ref id, "Win32_BaseBoard", "SerialNumber"); if (string.IsNullOrEmpty(id))GetSystemInfo(ref id, "Win32_Processor", "UniqueId"); if (string.IsNullOrEmpty(id))GetSystemInfo(ref id, "Win32_Processor", "ProcessorId"); m_deviceId = id;
- Device name
- It is a name set in the device’s settings, e.g. user specified name.
- Device model
- Indicates how the device model is represented in device’s OS.
- Device OS
- Shows the device’s operating system version.
- Application type
- “AppStore version” means that the application was provided by Resco and downloaded from an official app store (Apple App Store, Google Play, Windows Store). If the Application type field reads anything else, it means the user is running a custom-built application based on the Resco Mobile CRM technology.
Synchronization log
When synchronization is successful, this partial log records all the important information about the synchronization. If there is an issue, it will, of course, log the error, including as many details as possible to identify the issue.The synchronization log can also be used to check synchronization performance. It should look like this:
Log file: syncLog.txt
Date:2015-06-03 11:57:38+02:00
Org: 00000000-0000-0000-0000-000000000000
User: 00000000-0000-0000-0000-000000000000
License: Valid
New Customization 00000000-0000-0000-0000-000000000000 (body: True)
<Summary Foreground Server:5 Crm2011/ActiveDirectory Threads:3 Sent=0 Recv=27905 Result=CustomizationReady/> <Times Total=105552 Connect=7820 Prepare=7936/> <Details> <GetCustomizationTim=3808/> <DbPrepareTim=1146/> <Perm Priv=2473ms Org=357ms/> <FullSync> <DownloadActivityParty:appointment 1635ms, Added:618, DelCmds:245, Deleted:0/> <DownloadActivityParty:serviceappointment 499ms, Added:141, DelCmds:112, Deleted:0/> Entitys=86461ms Many=1601ms Shared=176ms <Cleanup221ms, Deleted 6/9> Attach=1246ms Sent=0 Recv=27905 TotalTim=89791</FullSync> </Details>
The sync log has its own structure. To save space, most of the labels and descriptions are shortened. The following info explains the data found in the synchronization log, from top to bottom, left to right:
- License
- First information is the License type. It can be Valid or Free. Validmeans the user has a professional (paid) license assigned. Free means that either a free version of Mobile CRM app is used, or it is a trial of the professional license.
- New Customization
- This section shows that there is new customization available and applied. The customization ID number can be compared with other users, if it seems that the customization was applied for one user but not for others(or the other way around). You can simply check the ID and see if they are getting the same project. You can do so in the Woodford configuration tool using the Check User option. If there is no new customization and the app synchronized only CRM data, this part of the sync log will read Customization NOT MODIFIED.
- Summary
- Download summary represents data as a number of threads, number of uploaded records, and number of downloaded records.
Summary section
Foreground means that the synchronization was performed with the progress window in the foreground, and the user had to wait until the sync ended to work with the app. The other option you could see here, Background, means that the synchronization ran in the background and users could work with the app apart from saving changes while the sync was in progress.
Result tells you what kind of synchronization it was:
- CustomizationReady – new or changed customization was found, downloaded and applied
- AdminFullSync – administrator forced full sync from Woodford. If you use background synchronization, user is notified that he needs to press the sync button when ready.
- Normal – standard incremental or full synchronization of data, without customization changes
- AppLocked – application was locked by admin in Woodford's Device control section
- Wiped – application was wiped by admin in Woodford's Device control section.
- Aborted – Synchronization process was killed by the system. We will get to this in few moments when we will take a closer look at sync errors
Times Total represents the entire duration of the synchronization, including the connection and preparation phase of the process. Connect is the connection time needed to get in touch with the CRM system. Prepare specifies the preparation time needed for download of metadata, including mobile project, permissions, creation of a new database if needed and preparation for download.
Even more detailed times for the preparation phase provides the following section. GetCustomization shows the time needed to download the customization project. DbPrepare reveals thetime needed to prepare the local database. PermPriv is the time it takes to download user permissions, and Org indicates the time required to download specific organization info, such as unit decimal precision. All times are in milliseconds.
In the second half of the sync log, we can see the number of operations that occurred, the times these operations took, and records that are uploaded and downloaded. The FullSync abbreviation tells us we’re taking a look at a full synchronization. It means that the local database is empty and all records, that follow sync filters (and user security role permissions as well as Max Sync Records option) were downloaded to the device from the CRM server. What’s important: When an activity party takes more than 200ms to download, details about the entity download will be displayed in the log. In our example above, download of the activity party list for the Appointment entity took 1635 milliseconds and 618 records were downloaded and none of them were deleted as they all follow the sync filter—even though delete commands were performed. Similarly, for Service Appointment entity.
The next part of the log presents the final summary of the data download part. Entitys is the total time needed to download actual data from the CRM, Many shows the time needed to download many to many relations, Shared is the time needed to download shared records. Cleanup is a stage that checks if all data follow the sync filter, because even during full synchronization some unwanted data can be downloaded. So the log shows the time needed for the cleanup phase and number of records and N:N relations removed.
The last section shows the time needed for the attachment download (Attach) and the number of uploaded (Sent) and download (Recv) records. The final information (TotalTime) is the net time of synchronization itself, without the connection and preparation phase.
Specifics of incremental synchronization
Incremental synchronization (IncSync) adds one more specific thing - the result of our custom plugins. So, if there is a change in owner, or N:N relation resulting in change in record’s permissions, or are even deleted on the CRM server, these changes are also performed on the Mobile CRM database that can result in removing records from the database, if the user no longer has permission for the record, or it no longer exists. You need to enable these plugins in Woodford.
License: Valid
New Customization XXXX-XXXX (body: True)
<Summary Foreground Server:5 Crm2011/ActiveDirectory Threads:3 Sent=1 Recv=0 Result=Normal/>
<Times Total=9365 Connect=295 Prepare=1028 UploadTotal=91/>
<Details>
<UploadSync>Entitys=96ms Sent=1 TotalTim=102 NoChangesLeft</UploadSync>
<GetCustomization Tim=1027/>
<IncSync> <SyncDeletes <Analyze Tim=147 UnchangedTbls=27/> Items=667 Fetches=5 Deletes=667 Tim=4725/> Entitys=5544ms Many=1308ms Shared=578ms Attach=291ms Sent=0 Recv=0 TotalTim=8042</IncSync>
</Details>
SyncDeletes displays the time needed for analyzing the plugin’s results and determine whether deletes need to be performed on the local database. If yes, deletes are removed and number of deletes is shown in Items and Deletes. The time needed to perform the plugin check (Tim) is the last information always visible. If there is an entity, where the delete or cleanup took longer than 200 milliseconds, it is shown also in Entitys section with further details.
SharePoint.DocumentSync – If there is such an expression in the sync log, check the actual issue. In this case make sure the SharePoint credentials were entered correctly, and that the SharePoint type is set accurately in Mobile CRM app’s Setup section:
2016-07-21T10:00:52.0609763+12:00: Exception
System.Net.HttpException: HTTP Error Unauthorized (401)
The remote server returned an error: (401) Unauthorized.
at System.Net.HttpWebRequestSync.GetResponse()
at ...WebServiceBase.XmlResponse..ctor(Object context, Boolean async, Boolean soap, XmlReaderSettings xmlSettings)
at ...WebServiceBase.InternalEndInvoke(Object request, Func`2 readResponse)
at MobileCrm.Data.SharePoint.ListService.GetListCollection()
at MobileCrm.Data.SharePoint.DocumentSync.GetListUrlMap(ListService service, config, Action`2 Log)
at MobileCrm.Data.SharePoint.DocumentSync