Skip to content
matidau edited this page Apr 30, 2023 · 1 revision

When you have an issue and get in touch with the developers, most of the time you will be asked for a WBXML log.

WBXML stands for "Wap Binary XML", a bandwidth optimized XML format, that contains all data exchanged between the client and the server.

How to enable WBXML logging?

There are two ways of getting a WBXML log:

Enable WBXML logging server wide (for ALL users)

This is done by adjusting the LOGLEVEL parameter in your z-push config (usually /etc/z-push/z-push.conf.php or in z-push-dir/config.php) setting it to LOGLEVEL_WBXML.

define('LOGLEVEL', LOGLEVEL_WBXML);

No further action is necessary, all following requests will be logged in this loglevel.

Enable a user specific log

The main z-push config file contains also a parameter called $specialLogUsers. It allows you to specify a list of users you want to get detailed logs for.

Usernames have to be encapsulated in quotes, several users are comma separated, like:

$specialLogUsers = array('info@domain.com', 'myusername');

You can keep the option LOGUSERLEVEL as it is. The loglevel LOGLEVEL_DEVICEID is above LOGLEVEL_WBXML (includes the WBXML data) but also logs the device id. This is especially important if one user has more than one device.

This option will generate a log file per user in your z-push log directory (usually /var/log/z-push). All characters other than letters and numbers will be replaced with underscores, so the username info@domain.com from the example above becomes info_domain_com.log.

Be aware the a WBXML log is quite extensive and can generate several GB of logs within hours. Make sure you don't run out of diskspace.

Sensitive Data

Be aware that the XML log contains all sensitive data transmitted to the client, not all times readable in plain text. When posting (extracts of) the log to public forum you should remove/replace sensitive data like email addresses and IP addresses.

What could removed from a big log?

Issues related to folders require the initial FolderSync command to be in the log. This is done by the client when setting up a new profile or when you resynchronize the entire profile or the hierarchy via z-push-admin, generally happening early.

If you have issues with certain items (like meeting requests) make sure the part of the log where these items are synchronized/modified are in the log.

All data written is in UTF-8. Make sure your terminal/editor is UTF-8 enabled when manipulating the logs.