+1 for logback! -- jesse mcconnell jesse.mcconn...@gmail.com
On Tue, Dec 11, 2012 at 3:18 AM, Stephen Connolly <steph...@apache.org>wrote: > Given that some people are already confused as to what the exact question > is > I think we should clarify exactly what is the decision that is being asked. > > There has already been a decision to use the slf4j API for logging within > core. > > * The vast majority of plugins will still use the Maven Log interface for > their logging. > > * A small limited number of plugins with specific needs will use the slf4j > API that > is exposed by core directly, but those plugins will have to do some work > in > order to ensure that they work with Maven pre 3.1.0 as well as Maven > post 3.1.0 > > My understanding is that they will have to add a slf4j implementation to > their > dependencies... on Maven 3.1.0+ the implementation will be ignored as > the > slf4j-api that they see on their classpath will already have been > initialized with > core's implementation. On Maven pre-3.1.0 their slf4j-api will be > initialized and > find their slf4j implementation. > > * A smaller subset of plugins need to control the slf4j implementation and > cannot have a different implementation. Those plugins will have to add a > metadata flag requesting a classloader that is isolated from core's > slf4j API. > Such plugins might be redirecting log output for processing, or some > other > need that we have not foreseen. > > On Maven 3.1.0 if the metadata flag is not present the plugin will > likely be > borked and a newer version with the metadata flag will need to be > released > [Though the precise behaviour in the absence of this flag is yet to be > defined] > When the flag is enabled, the Maven Log interface will be the way the > plugin > is required to route the information it wants logged to the user through > to > the user. > > On Maven pre-3.1.0 things will be as they always were, i.e. the Maven > Log > interface is the way we prefer information to be logged through to the > user. > > What is being discussed now is which *implementation* to use for the Maven > CLI > commands by default in core starting with Maven 3.1.0. > > There are a number of possible implementations: > > * SLF4J Simple was initially considered. This is a very limited logger but > would > be able to produce logging output formatted the same as Maven currently > provides. *However* there is a regression caused for some of the > integration > tests when using SLF4J and fixing those issues currently produces > performance > regressions as well as the current uncertainty as to whether those fixes > will > be accepted by Ceki (the SLF4J maintainer). For this reason SLF4J Simple > is currently being rejected on technical grounds (but if sufficient > developers > really want to go with the "we don't want to choose a specific > implementation" > choice, this is the implementation you would be selecting. > > * Logback is being proposed by Jason. AFAIK this implementation passes on > the > technical criteria. In other words no failing integration tests and no > significant > performance regressions. > > * Log4j2 has been championed by Olivier. AFAIK this implementation passes > on > the integration tests. I am not sure of the performance technical test. > One should > note that Log4j2 is a new implementation and is not Log4j > > I hope that Olivier or somebody else can confirm the integration test > status of Log4j2 > as a back end implementation and provide information on the performance > status > of Log4j2. > > To my knowledge no other SLF4J implementations have been proposed, but if > there are others that people want considered please provide an update here. > > The primary concern that Maven committers should apply is the technical > merit of > any proposed implementation. > > An implementation should be able to pass all the integration tests and not > produce > a significant performance regression. > > Developers should not concern themselves with the licensing terms of the > implementation provided that the implementation is available under one of > the > ASL compatible licenses (i.e. Category A or Category B). If a Category B > licensed > implementation is chosen then for legal reasons the PMC must approve the > use > of that dependency. (Personally speaking, if that decision is purely based > on > technical grounds, I do not see why the PMC would object) > > Maven Committers can use other criteria in making their decision. Just > ensure > that the technical merit is the primary criteria and do not make the > decision based > on Licensing. > > If you are not a committer, your input is still wanted and welcome. We want > this > decision to be one embraced by the whole community. > > -Stephen > > > On 11 December 2012 07:14, Ansgar Konermann < > ansgar.konerm...@googlemail.com > > wrote: > > > Hi, > > > > please go for logback. I really wondered why slf4j was initially chosen > at > > all, given logback is available and mature. We've been using logback at > > work in production for quite some time now and are very pleased. So yes, > > using logback in Maven is fine. > > > > Regards > > > > Ansgar > > Am 11.12.2012 03:33 schrieb "Jason van Zyl" <ja...@tesla.io>: > > > > > Hi, > > > > > > I looked around a bit more today and I don't think SLF4J Simple is > viable > > > long term, I don't want to patch it anymore as I would have to do a > day's > > > work to make changes that keep the performance levels up, get it > reviewed > > > and released, and I honestly don't think it's worth it anymore. I would > > > rather spend my time building out the plugin test cases and help to > > finish > > > the classloader blocking of SLF4J. I don't mind spending time getting > it > > > all working but I don't want to waste my time on an implementation > we're > > > going to toss. > > > > > > After a conversation with the PMC it will require a vote to accept > > Logback > > > which is EPL but I wanted to ask committers and interested users about > > > using Logback. I believe Logback is the best choice as it's the most > > mature > > > and battle tested implementation because once it goes in it's likely > not > > > ever to come out. Many of us are users and have integration experience > > with > > > Logback and it's what I use everyday for logging in all my other > projects > > > and I've been a happy user for years. I see Logback as best of breed > and > > > widely adopted including 8 projects at Apache. > > > > > > There's no point in asking the PMC to vote on the acceptance of Logback > > if > > > it's not acceptable by the community. If there are interested users I > > would > > > really like to hear what you think because you're the ones who will > have > > to > > > live with the choice that is made. > > > > > > Thanks, > > > > > > Jason > > > > > > ---------------------------------------------------------- > > > Jason van Zyl > > > Founder & CTO, Sonatype > > > Founder, Apache Maven > > > http://twitter.com/jvanzyl > > > --------------------------------------------------------- > > > > > > To do two things at once is to do neither. > > > > > > -- Publilius Syrus, Roman slave, first century B.C. > > > > > > > > > > > > > > > > > > > > >