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.

> 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

Reply via email to