On Wed, Nov 11, 2015 at 04:57:59PM +0100, Marek Marczykowski-Górecki wrote:
On Tue, Sep 15, 2015 at 11:21:00AM -0600, Jim Fehlig wrote:
> Daniel P. Berrange wrote:
> > On Tue, Sep 15, 2015 at 10:57:50AM -0600, Jim Fehlig wrote:
> >
> >> Daniel P. Berrange wrote:
> >>
> >>> On Tue, Sep 15, 2015 at 09:26:23AM -0600, Jim Fehlig wrote:
> >>>
> >>>
> >>>> Instead of a hardcoded DEBUG log level, use the overall
> >>>> daemon log level specified in libvirtd.conf when opening
> >>>> a log stream with libxl. libxl is very verbose when DEBUG
> >>>> log level is set, resulting in huge log files that can
> >>>> potentially fill a disk. Control of libxl verbosity should
> >>>> be placed in the administrator's hands.
> >>>>
> >>>> Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
> >>>> ---
> >>>> src/libxl/libxl_conf.c | 18 +++++++++++++++++-
> >>>> 1 file changed, 17 insertions(+), 1 deletion(-)
> >>>>
> >>>>
> >>> ACK, this makes sense as default behaviour. As a future enhancement
> >>> you might also consider supporting a config setting in
/etc/libvirt/libxl.conf
> >>> to explicitly control the libxl library logging behaviour
independantly.
> >>>
> >>>
> >> I had actually thought of adding it there first, but then took this
> >> approach assuming it would be more receptive upstream :-). Personally,
> >> I'm on the fence. I like the idea of a single knob to control log
level
> >> throughout the daemon, making it a bit easier on admins. On the other
> >> hand, individual knobs are more friendly to those pouring through logs.
> >> I can add a knob in libxl.conf if preferred.
> >>
> >
> > After thinking about it some more, I could actually see value in
> > create a dedicated virLogSource() instance, solely for libxl
> > library messages. If we then created a virLogSourceGetPriority()
> > method, you could query that to see if to turn on logging for
> > the libxl library. That would ultimately allow you to turn on
> > debug for just the libxl library if desired, eg
> >
> > static virLogSource virLogLibXL = {
> > .name = "libxl.libxl_library",
> > ....
> > }
> >
> > LIBVIRT_LOG_FILTERS="1:libxl_library"
> >
>
> Ah, good idea. I'll look into it.
Is it done anywhere? If not, how can I help?
This the above change (setting libxl log level to libvirtd global one),
makes almost impossible to get libxl debug, because the rest of libvirtd
trashes the logs (hundreds virEvent* and virObject* messages, at
"info"(!) level).
Presumably that's because you are using LIBVIRT_DEBUG=1 or setting
log_debug=1 in /etc/libvirt/libvirtd.log. That is generally discouraged
because it turns on all logging, which is essentially unusably verbose.
It is also better to use more specific log settings, eg when I debug
the QEMU driver I usually use
log_filters="1:qemu 1:security 3:event 3:object 1:util"
log_outputs="1:file:/var/log/libvirt/libvirtd.log"
This generates log messages from every source file in qemu and
security directories, and also log messages from every file
in the util/ directory *except* for event & object files.
So it is much more managable to read.
The log filter strings just do a wildcard match against the
VIR_LOG_INIT("...."); lines in each source file, so you can
make things more or less specific as you desire.
Regards,
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|