On Sep 9, 2012, at 3:14 PM, Anders Hammar wrote: > I'll join. :-) > >> 1. Use slf4j-api as our primary facade/api for loggin in Maven. I'm in >> favor, because it's much more common and popular than plexus. > > Me too. And I'm even arguing we should try to switch to slf4j in core. > Sure, no real technical advantage, but I believe it's easier for other > people coming in and understanding the code if we don't use old > (deprecated?) APIs. >
Well, we can if we want for additions. But this method doesn't require it. Have to live with your baggage. Forever. But that doesn't mean you can't make improvements and I think using SLF4J is one of these improvements. >> 2. Picking an slf4j-X to deliver logging to somewhere. I'm somewhat in >> favor of java.util.logging for this, because of the baroque classpath >> interactions of log4j initialization. But if others prefer log4j or >> even something else, OK. > > logback would be my pick. > >> 3. Tossing one or more X-slf4j bridges into the default plugin >> classpath. If Mark's concerns about surprises have any foundations in >> technical reality, this is where they would turn up. I'm doubtful, but >> on the other hand, what if we just didn't do this, and left it to >> individual plugin authors to do this if, in fact, they wanted mapping >> from some other logging API? > > Not sure we should add stuff "just in case". I mean, which ones should > we pick? I kind of think it should be none or all. But all would be > impossible I think as it would include stuff we haven't heard of > before. > >> It would be good for some others to join this discussion. > > Thanks for bringing this discussion down to the pace of us slower people! > > /Anders > >> >> >> >> On Sun, Sep 9, 2012 at 1:35 PM, Jason van Zyl <ja...@tesla.io> wrote: >>> I think you're trying to preemptively solve for an issue that we may not >>> have. I believe that if the right JARs are in the classpath first we will >>> easily be able to tell running the integration tests for Maven and the >>> integration tests for all the plugins if there's going to be an issue. I >>> believe the Ceki has probably run into every integration scenario >>> imaginable over the last 10 years and he'll help us if required. >>> >>> I have runt into nasty problems where the classpath and classloaders cannot >>> be controlled directly from the host system, but this is obviously within >>> our purview to control. >>> >>> On Sep 9, 2012, at 1:22 PM, Mark Struberg wrote: >>> >>>> >>>>> Generally I use jul-to-slf4j and jcl-over-slf4j and then I don't care what >>>>> components use what logging framework. >>>> Yes, only that this sometimes causes really unfriendly classcast >>>> exceptions :/ >>>> >>>> How can we deal with those? Is there a retry possible? Imo not easily. >>>> Could we scan the plugin classpath upfront? >>>> Can a different class lookup strategy in our ClassRealms help? >>>> Don't we care at all and people must exclude log4j et all manually if they >>>> like to use a new maven version? >>>> >>>> >>>> LieGrue >>>> strub >>>> >>>> >>>> >>>> ----- Original Message ----- >>>>> From: Jason van Zyl <ja...@tesla.io> >>>>> To: Maven Developers List <dev@maven.apache.org> >>>>> Cc: >>>>> Sent: Sunday, September 9, 2012 7:08 PM >>>>> Subject: Re: SLF4J implementation [was Re: svn commit: r1380105 - in >>>>> /maven/maven-3/trunk: ./ apache-maven/ >>>>> maven-core/src/main/java/org/apache/maven/classrealm/ maven-embedder/ >>>>> maven-embedder/src/main/java/org/apache/maven/cli/] >>>>> >>>>> Boils down to 1) pick a logging facade and 2) pick a default >>>>> implementation. >>>>> >>>>> SLF4J is really the de facto standard, used everywhere including 15 >>>>> projects >>>>> here at Apache. >>>>> >>>>> It's unlikely to be surprising to anyone with the changes I've made as >>>>> it will appear just like it does now. A bunch of log statement to the >>>>> console. >>>>> It's unlikely any plugin author is going to care about changing the >>>>> implementation as its running inside Maven. Integrators may want to >>>>> change the >>>>> implementation to control how components and plugins log but the authors >>>>> of >>>>> plugins should not have to care. >>>>> >>>>> SLF4J accompanying utilities also help to sequester log output from >>>>> commons >>>>> logging and JUL into the same funnel. So even if plugin authors are >>>>> pulling in >>>>> component we could add the adapters and bridges to make this all work >>>>> nicely. So >>>>> even if something is using commons-logging or JUL under the covers it >>>>> will all >>>>> come out, ultimately, through SLF4J. >>>>> >>>>> Generally I use jul-to-slf4j and jcl-over-slf4j and then I don't care what >>>>> components use what logging framework. >>>>> >>>>> On Sep 9, 2012, at 12:43 PM, Benson Margulies wrote: >>>>> >>>>>> On Sun, Sep 9, 2012 at 12:38 PM, Mark Struberg <strub...@yahoo.de> >>>>> wrote: >>>>>>> sorry, didn't catch this reply earlier. >>>>>>> >>>>>>> I see, but then we are back to my original problem. Once you add e.g. >>>>> log4j-slf4j binding then you will get nasty class cast exceptions because >>>>> they >>>>> are not fully binary compatible. If there is a log4j.jar in the classpath >>>>> of the >>>>> plugin already then it might even crash with a weird Exception. >>>>>> >>>>>> Folks, I'm sorry, but I'm not following this argument. I apologize >>>>> for >>>>>> being slow, but I really wish that someone would sort this into a >>>>>> small number of questions and explain the pros and cons of them. >>>>>> >>>>>> I'm fine with declaring SLF4J to be the primary logging API inside >>>>>> Maven, and leaving it to individual plugin authors to toss in X-slf4j >>>>>> if they want to. I can see why putting X-slf4j into the plugin >>>>>> classpath by default could have surprising and unpleasant results, but >>>>>> there might be a persuasive reason to do it anyway. >>>>>> >>>>>> >>>>>> >>>>>>> >>>>>>> >>>>>>> I've seen such problems in the wild. >>>>>>> This is nothing which slf4j does wrong - it's just not really >>>>> possible to do it 100% right. >>>>>>> >>>>>>> We imo only have the option to choose between different kinds of >>>>> 'broken'. >>>>>>> >>>>>>> >>>>>>> LieGrue, >>>>>>> strub >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> ----- Original Message ----- >>>>>>>> From: Jason van Zyl <ja...@tesla.io> >>>>>>>> To: Maven Developers List <dev@maven.apache.org>; Mark >>>>> Struberg <strub...@yahoo.de> >>>>>>>> Cc: >>>>>>>> Sent: Sunday, September 9, 2012 4:22 PM >>>>>>>> Subject: Re: SLF4J implementation [was Re: svn commit: r1380105 - >>>>> in /maven/maven-3/trunk: ./ apache-maven/ >>>>> maven-core/src/main/java/org/apache/maven/classrealm/ maven-embedder/ >>>>> maven-embedder/src/main/java/org/apache/maven/cli/] >>>>>>>> >>>>>>>> >>>>>>>> On Sep 9, 2012, at 4:17 AM, Mark Struberg wrote: >>>>>>>> >>>>>>>>> Can you again please explain me what the benefit of the SLF4J >>>>> abstraction >>>>>>>> over the already used plexus.Logger is? Both are just logging >>>>> facades. >>>>>>>>> >>>>>>>> >>>>>>>> But really I think the biggest benefit is that, as far as I know, >>>>> SLF4J >>>>>>>> integrates with every known logging framework right now. In that it >>>>> can coerce >>>>>>>> JUL, and CL logging into a unified framework which I don't >>>>> believe any of >>>>>>>> the other frameworks do, or do as well. Maven is about integration >>>>> and for >>>>>>>> logging I believe it's the best solution that exists for the >>>>> least effort. >>>>>>>> >>>>>>>> I think it's been adopted at Apache by so many projects >>>>> specifically for >>>>>>>> those reasons. Ceki is also a committer, and will help us fix >>>>> anything when >>>>>>>> necessary so that, again, we can focus on Maven and not logging. >>>>>>>> >>>>>>>> Thanks, >>>>>>>> >>>>>>>> Jason >>>>>>>> >>>>>>>> ---------------------------------------------------------- >>>>>>>> Jason van Zyl >>>>>>>> Founder & CTO, Sonatype >>>>>>>> Founder, Apache Maven >>>>>>>> http://twitter.com/jvanzyl >>>>>>>> --------------------------------------------------------- >>>>>>>> >>>>>>>> Selfish deeds are the shortest path to self destruction. >>>>>>>> >>>>>>>> -- The Seven Samuari, Akira Kurosawa >>>>>>>> >>>>>>> >>>>>>> --------------------------------------------------------------------- >>>>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >>>>>>> For additional commands, e-mail: dev-h...@maven.apache.org >>>>>>> >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >>>>>> For additional commands, e-mail: dev-h...@maven.apache.org >>>>>> >>>>> >>>>> Thanks, >>>>> >>>>> Jason >>>>> >>>>> ---------------------------------------------------------- >>>>> Jason van Zyl >>>>> Founder & CTO, Sonatype >>>>> Founder, Apache Maven >>>>> http://twitter.com/jvanzyl >>>>> --------------------------------------------------------- >>>>> >>>>> believe nothing, no matter where you read it, >>>>> or who has said it, >>>>> not even if i have said it, >>>>> unless it agrees with your own reason >>>>> and your own common sense. >>>>> >>>>> -- Buddha >>>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >>>> For additional commands, e-mail: dev-h...@maven.apache.org >>>> >>> >>> Thanks, >>> >>> Jason >>> >>> ---------------------------------------------------------- >>> Jason van Zyl >>> Founder & CTO, Sonatype >>> Founder, Apache Maven >>> http://twitter.com/jvanzyl >>> --------------------------------------------------------- >>> >>> A man enjoys his work when he understands the whole and when he >>> is responsible for the quality of the whole >>> >>> -- Christopher Alexander, A Pattern Language >>> >>> >>> >>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >> For additional commands, e-mail: dev-h...@maven.apache.org >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org > For additional commands, e-mail: dev-h...@maven.apache.org > Thanks, Jason ---------------------------------------------------------- Jason van Zyl Founder & CTO, Sonatype Founder, Apache Maven http://twitter.com/jvanzyl --------------------------------------------------------- believe nothing, no matter where you read it, or who has said it, not even if i have said it, unless it agrees with your own reason and your own common sense. -- Buddha