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.
> 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 ...
>
> >
> > >
> > > > 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
> > > > > >
> > > > >
> > > >
> > >
> >
>