38 Gathering system information and logs #
  When a virtualization host encounters a problem, it is often necessary to
  collect a detailed system report, which can be done with the help of the
  supportconfig tool. See https://documentation.suse.com/sles/15-SP3/html/SLES-all/cha-adm-support.html
  for more information about supportconfig.
 
  In some cases, the information gathered by supportconfig
  is insufficient, and logs generated from a custom logging or debugging
  configuration might be required to determine the cause of a problem.
 
38.1 libvirt log controls #
libvirt provides logging facilities for both the library and the daemon.
   The behavior of the logging facility is controlled by adjusting the log level,
   filter, and output settings.
  
- Log level
- libvirtlog messages are classified into four priority levels: DEBUG, INFO, WARNING, and ERROR. The DEBUG level is very verbose and capable of generating gigabytes of information in a short time. The volume of log messages progressively decreases with the INFO, WARNING, and ERROR log levels. ERROR is the default log level.
- Log filters
- Log filters provide a way to log only messages matching a specific component and log level. Log filters allow collecting the verbose DEBUG log messages of specific components, but only ERROR level log messages from the rest of the system. By default, no log filters are defined. 
- Log outputs
- Log outputs allow specifying where the filtered log messages are sent. Messages can be sent to a file, the standard error stream of the process, or journald. By default, filtered log messages are sent to journald. 
   See https://libvirt.org/logging.html for more details
   on libvirt's log controls.
  
   A default libvirt installation has the log level set to ERROR, no log filters
   defined, and log outputs set to journald. Log messages from the libvirt
   daemon can be viewed with the journalctl command:
  
# jounalctl --unit libvirtd
   The default log facility settings are fine for normal operations and
   provide useful messages for applications and users of libvirt, but
   internal issues often require DEBUG level messages. As an example,
   consider a potential bug in the interaction between libvirt and the
   QEMU monitor. In this case, we only need to see the debug messages of
   the communication between libvirt and QEMU. The following example
   creates a log filter to select debug messages from the QEMU driver
   and send them to a file named /tmp/libvirtd.log
log_filters="1:qemu.qemu_monitor_json" log_outputs="1:file:/tmp/libvirtd.log"
   Log controls for the libvirt daemon can be found in
   /etc/libvirt/libvirtd.conf. The daemon must be
   restarted after making any changes to the configuration file.
  
# systemctl restart libvirtd.service