Log collection
Overview
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.
Configuration
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
<!--NeedCopy-->
Values
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
<!--NeedCopy-->
View or set a single setlog
value:
setlog value <name> [<value>]
<!--NeedCopy-->
For example:
setlog value log_size 100
<!--NeedCopy-->
Levels
By default, log levels are set to warning (case-insensitive).
To view log levels set for different components, run the following command:
setlog levels
<!--NeedCopy-->
To set log levels (including Disabled, Inherited, Verbose, Information, Warnings, Errors, and Fatal Errors), run the following command:
setlog level <class> [<level>]
<!--NeedCopy-->
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
<!--NeedCopy-->
Flags
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
<!--NeedCopy-->
View the current flags:
setlog flags
<!--NeedCopy-->
View or set a single log flag:
setlog flag <flag> [<state>]
<!--NeedCopy-->
Restore Defaults
Revert all levels, flags, and values to the default settings:
setlog default
<!--NeedCopy-->
Important:
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 toctxlogd
, which can affect server performance and therefore the user experience.
Log collection
You can run the bash /opt/Citrix/VDA/bin/xdlcollect.sh
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.
Troubleshooting
The ctxlogd
daemon fails and you cannot restart the ctxlogd
service when the /var/xdl/.ctxlog file is missing (for example, accidentally deleted).
/var/log/messages:
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.
<!--NeedCopy-->
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.