Linux Virtual Delivery Agent

Log collection


Collecting logs and reproducing issues slow down the diagnostics and degrade the user experience. The Tracing On feature eases such efforts. Tracing is enabled for the Linux VDA by default.


The ctxlogd daemon and the setlog utility are now included in the Linux VDA release package. By default, the ctxlogd daemon starts after you install and configure the Linux VDA.

The ctxlogd daemon

All the other services that are traced depend on the ctxlogd daemon. You can stop the ctxlogd daemon if you do not want to keep the Linux VDA traced.

The setlog utility

Tracing On is configured using the setlog utility, which is under the /opt/Citrix/VDA/bin/ path. Only the root user has the privilege to run it. You can use the GUI or run commands to view and change the configurations. Run the following command for help with the setlog utility:

setlog help


By default, Log Output Path is set to /var/log/xdl/hdx.log, Max Log Size is set to 200 MB, and you can save up to two old log files under Log Output Path.

View the current setlog values:

setlog values

log_path (Log Output Path) = /var/log/xdl/hdx.log

log_size (Max Log Size (MiB)) = 200

log_count (Max Old Log Files) = 2

View or set a single setlog value:

setlog value <name> [<value>]

For example:

setlog value log_size 100


By default, log levels are set to warning (case-insensitive).

To view log levels set for different components, run the following command:

setlog levels

To set log levels (including Disabled, Inherited, Verbose, Information, Warnings, Errors, and Fatal Errors), run the following command:

setlog level <class> [<level>]
Log Level Command Parameter (Case-Insensitive)
Disabled none
Inherited inherit
Verbose verbose
Information info
Warnings warning
Errors error
Fatal Errors fatal

The <class> variable specifies one component of the Linux VDA. To cover all components, set it to all. For example:

setlog level all error


By default, the flags are set as follows:

setlog flags

DATE = true

TIME = true

NAME = true

PID = true

TID = false

SID = true

UID = false

GID = false

CLASS = false

LEVEL = false

FUNC = true

FILE = false

View the current flags:

setlog flags

View or set a single log flag:

setlog flag <flag> [<state>]

Restore Defaults

Revert all levels, flags, and values to the default settings:

setlog default


The ctxlogd service is configured using the /var/xdl/.ctxlog file, which only root users can create. Other users do not have write permission to this file. We recommend that root users not give write permission to other users. Failure to comply can cause the arbitrary or malicious configuration to ctxlogd, which can affect server performance and therefore the user experience.

Log collection

You can run the bash /opt/Citrix/VDA/bin/ command to collect logs. The xdlcollect Bash script used to collect logs is integrated into the Linux VDA software and located under /opt/Citrix/VDA/bin.

After the log collection completes, a compressed log file is generated in the same folder as the script. The xdlcollect Bash script can ask you whether to upload the compressed log file to Citrix Insight Services (CIS). If you agree, xdlcollect returns an upload_ID after the upload completes. The upload does not remove the compressed log file from your local machine. Other users can use the upload_ID to access the log file in CIS.


The ctxlogd daemon fails and you cannot restart the ctxlogd service when the /var/xdl/.ctxlog file is missing (for example, accidentally deleted).


Apr 1 02:28:21 RH72 citrix-ctxlogd[17881]: Failed to open logging configuration file.

Apr 1 02:28:21 RH72 systemd: ctxlogd.service: main process exited, code=exited, status=1/FAILURE

Apr 1 02:28:21 RH72 systemd: Unit ctxlogd.service entered failed state.

Apr 1 02:28:21 RH72 systemd: ctxlogd.service failed.

To solve this issue, run setlog as a root user to recreate the /var/xdl/.ctxlog file. Then restart the ctxlogd service on which other services depend.

Log collection