On Wed, May 11, 2016 at 15:12:27 +0100, Daniel P. Berrange wrote: > The logging framework has categories which can be selectively > enabled/disabled by setting a suitable LIBVIRT_LOG_FILTERS > environment variable or config file setting. > > Along side that we also have the LIBVIRT_DEBUG environment > variable which unconditionally enables every single category > at DEBUG level. With the amount of logging produced by libvirt > these days, the signal/noise ratio in the output from setting > LIBVIRT_DEBUG is to poor for it to be useful. > > Originally the LIBVIRT_DEBUG env variable had a very specific > use case - it resulted in logging of anything in our public > API entrypoints. eg it turned on src/libvirt.c debugging and > nothing else. Additionally it would always result in log > messages being sent to stderr. > > When applied to any of the daemons, the log output no longers > gets sent to stderr, but rather to whatever default log output > has been configured by the daemon. If no log_outputs setting > or LIBVIRT_LOG_OUTPUTS env is set, then messages will often > go to the systemd journal or a /var/log/libvirt/libvirtd.log > file rather than stderr. > > These factors have conspired to make the LIBVIRT_DEBUG env > and/or default log priority to be pretty useless in the real > world. > > This change attempts to take us back towards the original > semantics of the LIBVIRT_DEBUG env variable as follows. > > If LIBVIRT_DEBUG is set to a plain integer, or log level > string, then it will turn on logging for the "libvirt" log > category at that level. Any other string will be parsed in > the same way as LIBVIRT_LOG_FILTERS would be. In all cases > use of LIBVIRT_DEBUG will result in an explicit output being > added for stderr. This ensures that messages always go to > stderr, even if other outputs are already configured. > > IOW, LIBVIRT_DEBUG=1 virsh or LIBVIRT_DEBUG=1 libvirtd > will both result in printing logs of libvirt public API > calls to stderr. Meanwhile setting LIBVIRT_DEBUG="1:qemu" > is equivalent to setting LIBVIRT_LOG_FILTERS="1:qemu" and > LIBVIRT_LOG_OUTPUTS="1:stderr" Hmm, this looks like it's going to break existing valid configurations, such as log_level = 1 log_filters="3:util.log 3:rpc.keepalive 3:rpc 3:remote 3:util.json" log_outputs="1:file:/var/log/libvirt/libvirtd.log" Shouldn't log_level = 1 add an all matching filter rather than the one matching just libvirt? Jirka -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list