From: "Martin Perina" <mperina(a)redhat.com>
To: "Alon Bar-Lev" <alonbl(a)redhat.com>
Cc: devel(a)ovirt.org
Sent: Monday, June 16, 2014 4:49:57 PM
Subject: Re: [ovirt-devel] Question/thoughts about our engine logging framework
----- Original Message -----
> From: "Alon Bar-Lev" <alonbl(a)redhat.com>
> To: "Martin Perina" <mperina(a)redhat.com>
> Cc: devel(a)ovirt.org
> Sent: Monday, June 16, 2014 3:26:00 PM
> Subject: Re: [ovirt-devel] Question/thoughts about our engine logging
> framework
>
>
>
> ----- Original Message -----
> > From: "Martin Perina" <mperina(a)redhat.com>
> > To: "Alon Bar-Lev" <alonbl(a)redhat.com>
> > Cc: devel(a)ovirt.org
> > Sent: Monday, June 16, 2014 4:22:16 PM
> > Subject: Re: [ovirt-devel] Question/thoughts about our engine logging
> > framework
> >
> >
> >
> > ----- Original Message -----
> > > From: "Alon Bar-Lev" <alonbl(a)redhat.com>
> > > To: "Martin Perina" <mperina(a)redhat.com>
> > > Cc: devel(a)ovirt.org, "Greg Sheremeta"
<gshereme(a)redhat.com>
> > > Sent: Sunday, June 15, 2014 7:44:22 PM
> > > Subject: Re: [ovirt-devel] Question/thoughts about our engine logging
> > > framework
> > >
> > >
> > >
> > > ----- Original Message -----
> > > > From: "Martin Perina" <mperina(a)redhat.com>
> > > > To: "Alon Bar-Lev" <alonbl(a)redhat.com>
> > > > Cc: devel(a)ovirt.org, "Greg Sheremeta"
<gshereme(a)redhat.com>
> > > > Sent: Sunday, June 15, 2014 8:17:13 PM
> > > > Subject: Re: [ovirt-devel] Question/thoughts about our engine
logging
> > > > framework
> > > >
> > > >
> > > >
> > > > ----- Original Message -----
> > > > > From: "Alon Bar-Lev" <alonbl(a)redhat.com>
> > > > > To: "Martin Perina" <mperina(a)redhat.com>
> > > > > Cc: devel(a)ovirt.org, "Greg Sheremeta"
<gshereme(a)redhat.com>
> > > > > Sent: Sunday, June 15, 2014 6:27:09 PM
> > > > > Subject: Re: [ovirt-devel] Question/thoughts about our engine
> > > > > logging
> > > > > framework
> > > > >
> > > > >
> > > > >
> > > > > ----- Original Message -----
> > > > > > From: "Martin Perina" <mperina(a)redhat.com>
> > > > > > To: "Alon Bar-Lev" <alonbl(a)redhat.com>
> > > > > > Cc: devel(a)ovirt.org, "Greg Sheremeta"
<gshereme(a)redhat.com>
> > > > > > Sent: Sunday, June 15, 2014 7:19:15 PM
> > > > > > Subject: Re: [ovirt-devel] Question/thoughts about our
engine
> > > > > > logging
> > > > > > framework
> > > > > >
> > > > > >
> > > > > >
> > > > > > ----- Original Message -----
> > > > > > > From: "Alon Bar-Lev"
<alonbl(a)redhat.com>
> > > > > > > To: "Martin Perina"
<mperina(a)redhat.com>
> > > > > > > Cc: "Greg Sheremeta"
<gshereme(a)redhat.com>, devel(a)ovirt.org
> > > > > > > Sent: Sunday, June 15, 2014 5:07:28 PM
> > > > > > > Subject: Re: [ovirt-devel] Question/thoughts about our
engine
> > > > > > > logging
> > > > > > > framework
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > ----- Original Message -----
> > > > > > > > From: "Martin Perina"
<mperina(a)redhat.com>
> > > > > > > > To: "Greg Sheremeta"
<gshereme(a)redhat.com>
> > > > > > > > Cc: devel(a)ovirt.org
> > > > > > > > Sent: Sunday, June 15, 2014 5:34:51 PM
> > > > > > > > Subject: Re: [ovirt-devel] Question/thoughts
about our engine
> > > > > > > > logging
> > > > > > > > framework
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > ----- Original Message -----
> > > > > > > > > From: "Greg Sheremeta"
<gshereme(a)redhat.com>
> > > > > > > > > To: "Yair Zaslavsky"
<yzaslavs(a)redhat.com>
> > > > > > > > > Cc: devel(a)ovirt.org
> > > > > > > > > Sent: Sunday, June 15, 2014 4:25:54 PM
> > > > > > > > > Subject: Re: [ovirt-devel] Question/thoughts
about our
> > > > > > > > > engine
> > > > > > > > > logging
> > > > > > > > > framework
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > ----- Original Message -----
> > > > > > > > > > From: "Eli Mesika"
<emesika(a)redhat.com>
> > > > > > > > > > To: "Yair Zaslavsky"
<yzaslavs(a)redhat.com>
> > > > > > > > > > Cc: devel(a)ovirt.org
> > > > > > > > > > Sent: Sunday, June 15, 2014 10:02:15
AM
> > > > > > > > > > Subject: Re: [ovirt-devel]
Question/thoughts about our
> > > > > > > > > > engine
> > > > > > > > > > logging
> > > > > > > > > > framework
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > ----- Original Message -----
> > > > > > > > > > > From: "Vojtech Szocs"
<vszocs(a)redhat.com>
> > > > > > > > > > > To: "Martin Perina"
<mperina(a)redhat.com>
> > > > > > > > > > > Cc: devel(a)ovirt.org
> > > > > > > > > > > Sent: Friday, June 13, 2014
12:57:49 PM
> > > > > > > > > > > Subject: Re: [ovirt-devel]
Question/thoughts about our
> > > > > > > > > > > engine
> > > > > > > > > > > logging
> > > > > > > > > > > framework
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > ----- Original Message -----
> > > > > > > > > > > > From: "Martin
Perina" <mperina(a)redhat.com>
> > > > > > > > > > > > To: "Yair
Zaslavsky" <yzaslavs(a)redhat.com>
> > > > > > > > > > > > Cc: devel(a)ovirt.org
> > > > > > > > > > > > Sent: Friday, June 13, 2014
10:43:59 AM
> > > > > > > > > > > > Subject: Re: [ovirt-devel]
Question/thoughts about
> > > > > > > > > > > > our
> > > > > > > > > > > > engine
> > > > > > > > > > > > logging
> > > > > > > > > > > > framework
> > > > > > > > > > > >
> > > > > > > > > > > > Hi Yair,
> > > > > > > > > > > >
> > > > > > > > > > > > I had in my mind to clean up
logging framework mess
> > > > > > > > > > > > for
> > > > > > > > > > > > quite
> > > > > > > > > > > > some
> > > > > > > > > > > > time
> > > > > > > > > > > > :-)
> > > > > > > > > > > > Currently this is the usage
of logging frameworks in
> > > > > > > > > > > > engine
> > > > > > > > > > > > classes:
> > > > > > > > > > > >
> > > > > > > > > > > > java.util.logging.Logger
6.8%
> > > > > > > > > > > >
org.apache.commons.logging.Log 7.8%
> > > > > > > > > > > > org.apache.log4j.Logger
13.6%
> > > > > > > > > > > >
org.ovirt.engine.core.utils.log.Log 68.8%
> > > > > > > > > > > > org.slf4j.Logger
2.9%
> > > > > > > > > > > >
> > > > > > > > > > > > I think we should definitely
use only 1 logging
> > > > > > > > > > > > framework
> > > > > > > > > > > > for
> > > > > > > > > > > > the
> > > > > > > > > > > > whole
> > > > > > > > > > > > engine!
> > > > > > > > > > > >
> > > > > > > > > > > > So +1 to slf4j from me.
> > > > > > > > > > >
> > > > > > > > > > > +1 from me as well.
> > > > > > > > > >
> > > > > > > > > > +1
> > > > > > > > > >
> > > > > > > > > +1 to slf4j. I started using that
exclusively in Java
> > > > > > > > > projects
> > > > > > > > > 4
> > > > > > > > > years
> > > > > > > > > ago
> > > > > > > > > :)
> > > > > > > > >
> > > > > > > > > Just be careful if we're introducing it
as a new
> > > > > > > > > dependency.
> > > > > > > > > (It's
> > > > > > > > > provided
> > > > > > > > > by Fedora, but there might be conflicts if
JBoss/Wildfly
> > > > > > > > > uses
> > > > > > > > > it.
> > > > > > > > > We
> > > > > > > > > should
> > > > > > > > > use that same version, if it does.)
> > > > > > > >
> > > > > > > > We already have a dependency to slf4j 1.7.5 in
the root
> > > > > > > > pom.xml.
> > > > > > > > And
> > > > > > > > AFAIK
> > > > > > > > 1.7.2 is a part of EAP 6.
> > > > > > >
> > > > > > > The jboss we are using provides slf4j-1.6.1, while it
seems to
> > > > > > > be
> > > > > > > patched
> > > > > > > to
> > > > > > > support varargs[1] as 1.7.x.
> > > > > >
> > > > > > Ha, you are right, inside JBoss it works, because they did
the
> > > > > > same
> > > > > > thing
> > > > > > as
> > > > > > with
> > > > > > log4j. They provide same classes as slf4j, but with their
own
> > > > > > different
> > > > > > implementation with JBoss Logging backend :-(
> > > > > >
> > > > > > So if you compile with slf4j 1.7, you can use varargs even
when
> > > > > > JBoss
> > > > > > tries
> > > > > > to tell
> > > > > > us it provides slf4j 1.6 ...
> > > > > >
> > > > > > > As standalone at fedora there is slf4j which is
compatible and
> > > > > > > at
> > > > > > > rhel
> > > > > > > there
> > > > > > > is slf4j-eap6 both are 1.7.x.
> > > > > > > However for centos we use jpackage which provides
only
> > > > > > > 1.6.1[2].
> > > > > > > So for standalone packages we may experience issues if
were
> > > > > > > build
> > > > > > > using
> > > > > > > varargs.
> > > > > > >
> > > > > > > [1] logger.debug("format", obj1, obj2, obj3,
...)
> > > > > > > [2]
http://jpackage.org/browser/rpm.php?jppversion=6.0&id=12435
> > > > > >
> > > > > > AFAIK the only non JBoss usage of logging is at
engine-config and
> > > > > > engine-manage-domains.
> > > > > > So we have 2 options:
> > > > > >
> > > > > > 1) Use log4j in engine-config and engine-manage-domains
> > > > > > (current
> > > > > > status)
> > > > > > and use
> > > > > > slf4j in the rest of engine
> > > > > >
> > > > > > 2) Package slf4j 1.7.x as our dependency
> > > > > >
> > > > > > I would prefer option 1).
> > > > > >
> > > > >
> > > > > No... we use jboss modules within these, so you actually using
> > > > > jboss
> > > > > version.
> > > >
> > > > Not entirely true. We are using JBoss version of log4j to configure
> > > > logging.
> > > > But we cannot use slf4j provided by JBoss, because it can use as a
> > > > backend
> > > > only JBoss Logging and not log4j. I just verified that if slf4j is
> > > > used
> > > > in engine-manage-domains, it's not logged to the file configured
by
> > > > log4j.
> > > >
> > > > > The only one that does not use jboss modules is dwh, in which we
do
> > > > > not
> > > > > control logging anyway.
> > > > > We just need to make sure that standalone application either
use
> > > > > commons-logging (primitive) or slf4j-1.6.x for now.
> > > > > And in either case to use java.util.loggings as infa and not
log4j
> > > > > if
> > > > > not
> > > > > too
> > > > > late for that.
> > > >
> > > > In java.utils.logging you cannot use varargs in simple way (which is
> > > > for
> > > > me
> > > > one of the main reason to use slf4j):
> > > >
> > > > log.info("Hello: {} {} {}", p1, p2, p3);
> > > >
> > > > but you have to create new array of params:
> > > >
> > > > log.info("Hello: {} {} {}", new Object[] { p1, p2, p3});
> > > >
> > > > or format message outside logging framework:
> > > >
> > > > log.info(String.format("Hello: %s %s %s", p1, p2, p3));
> > > >
> > > > And this "external formatting" is the only way for
commons-logging
> > > > framework.
> > >
> > > You did not understand.
> >
> > Well, I'm not sure I understand even now, but see my response :-)
> >
> > > 1. use log4j or apache commons within application.
> >
> > That's not a good idea because both doesn't support simple varargs.
> > We want use slf4j to be able to use this:
> >
> > log.info("Hello: {} {} {}", p1, p2, p3);
> >
>
> I am sorry, had a typo... it should have been:
>
> 1. use slf4j or apache commons within application.
OK, now I understand, so if agreed then we will use slf4j.
So if we agree to slf4j, I plan to use slf4j in engine (the only
exception is java.logging in GWT related parts of code), remove
dependency to other logging frameworks (log4j, commons-logging)
and remove internal logging framework (org.ovirt.engine.core.utils.log)
>
> >
> > > 2. use java.logging as logging infra.
> >
> > Well, AFAIK JBoss reimplements java.logging backend and redirects
> > it to its own backend (JBoss Logging). No sure, if we will be able
> > (or want) to bypass this redirection and use java.logging as backend
> > for engine. Not to mention, there will always be server.log for JBoss
> > infra logging.
> >
> > And for engine-manage-domains and engine-config we would have to
> > drop command line configuration using log4j introduced in 3.5 and
> > for next version change it to java.logging configuration
> >
> > So personally I don't see any benefit of this change for users nor
> > developers ...
>
> yes, and drop the usage of log4j entirely.
OK, so migrate from log4j to java.logging backend in engine-manage-domains
and engine-config ...
>
> >
> > >
> > > >
> > > > >
> > > > > > Btw in RHEL7 there is packaged slf4j 1.7.5
> > > > > >
> > > > > > >
> > > > > > > >
> > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > Note that GWT UI code uses
java.util.logging
> > > > > > > > > > > exclusively
> > > > > > > > > > > to
> > > > > > > > > > > do
> > > > > > > > > > > all
> > > > > > > > > > > logging.
> > > > > > > > > > > (GWT emulates java.util.logging
API and provides log
> > > > > > > > > > > handlers
> > > > > > > > > > > for
> > > > > > > > > > > use
> > > > > > > > > > > on
> > > > > > > > > > > client side such as console.log()
or
> > > > > > > > > > > stdout/DevMode-during-debug
> > > > > > > > > > > handlers.)
> > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > And once we agree to 1
logging framework, I can start
> > > > > > > > > > > > preparing
> > > > > > > > > > > > patches
> > > > > > > > > > > > to
> > > > > > > > > > > > use it.
> > > > > > > > > > > >
> > > > > > > > > > > > ----- Original Message -----
> > > > > > > > > > > > > From: "Yair
Zaslavsky" <yzaslavs(a)redhat.com>
> > > > > > > > > > > > > To: devel(a)ovirt.org
> > > > > > > > > > > > > Sent: Friday, June 13,
2014 8:15:55 AM
> > > > > > > > > > > > > Subject: [ovirt-devel]
Question/thoughts about our
> > > > > > > > > > > > > engine
> > > > > > > > > > > > > logging
> > > > > > > > > > > > > framework
> > > > > > > > > > > > >
> > > > > > > > > > > > > Hi all,
> > > > > > > > > > > > > During my recent work on
AAA, I was suggested by
> > > > > > > > > > > > > Juan
> > > > > > > > > > > > > Hernandez
> > > > > > > > > > > > > to
> > > > > > > > > > > > > use
> > > > > > > > > > > > > slf4j
> > > > > > > > > > > > > logging framework which
serves as a facade for
> > > > > > > > > > > > > other
> > > > > > > > > > > > > logging
> > > > > > > > > > > > > frameworks
> > > > > > > > > > > > > (including java utils
logging which is now used by
> > > > > > > > > > > > > jboss),
> > > > > > > > > > > > > log4j
> > > > > > > > > > > > > and
> > > > > > > > > > > > > others.
> > > > > > > > > > > > > I have accepted
Juan's offer, and then when looking
> > > > > > > > > > > > > at
> > > > > > > > > > > > > our
> > > > > > > > > > > > > LogFactory
> > > > > > > > > > > > > class
> > > > > > > > > > > > > I
> > > > > > > > > > > > > have noticed we use
commons logging.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Several
thoughts/questions -
> > > > > > > > > > > > > A. Why continue use our
own wrapper as slf4j is
> > > > > > > > > > > > > already
> > > > > > > > > > > > > a
> > > > > > > > > > > > > facade.
> > > > > > > > > > > > > b. I think we should
move cross java code to slf4j.
> > > > > > > > > > > > > What
> > > > > > > > > > > > > do
> > > > > > > > > > > > > you
> > > > > > > > > > > > > think
> > > > > > > > > > > > > on
> > > > > > > > > > > > > this
> > > > > > > > > > > > > point?
> > > > > > > > > > > > >
> > > > > > > > > > > > > Some reading material -
> > > > > > > > > > > > >
> > > > > > > > > > > > >
http://javarevisited.blogspot.com.au/2013/08/why-use-sl4j-over-log4j-for-...
> > > > > > > > > > > > >
http://stackoverflow.com/questions/3222895/what-is-the-issue-with-the-run...
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > Yair
> > > > > > > > > > > > >
_______________________________________________
> > > > > > > > > > > > > Devel mailing list
> > > > > > > > > > > > > Devel(a)ovirt.org
> > > > > > > > > > > > >
http://lists.ovirt.org/mailman/listinfo/devel
> > > > > > > > > > > > >
> > > > > > > > > > > >
_______________________________________________
> > > > > > > > > > > > Devel mailing list
> > > > > > > > > > > > Devel(a)ovirt.org
> > > > > > > > > > > >
http://lists.ovirt.org/mailman/listinfo/devel
> > > > > > > > > > > >
> > > > > > > > > > >
_______________________________________________
> > > > > > > > > > > Devel mailing list
> > > > > > > > > > > Devel(a)ovirt.org
> > > > > > > > > > >
http://lists.ovirt.org/mailman/listinfo/devel
> > > > > > > > > > >
> > > > > > > > > >
_______________________________________________
> > > > > > > > > > Devel mailing list
> > > > > > > > > > Devel(a)ovirt.org
> > > > > > > > > >
http://lists.ovirt.org/mailman/listinfo/devel
> > > > > > > > > >
> > > > > > > > >
_______________________________________________
> > > > > > > > > Devel mailing list
> > > > > > > > > Devel(a)ovirt.org
> > > > > > > > >
http://lists.ovirt.org/mailman/listinfo/devel
> > > > > > > > >
> > > > > > > > _______________________________________________
> > > > > > > > Devel mailing list
> > > > > > > > Devel(a)ovirt.org
> > > > > > > >
http://lists.ovirt.org/mailman/listinfo/devel
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>