On Apr 2, 2007, at 7:07 PM, Paul Smith wrote:

At some point we can no longer ignore the decision about where 1.3 should go.

I am beginning to think that we should scale back 1.3 to be less of the planned revolution and more of a substantial-update-but- completely-backward compatible (to a point).

We can then step back and think way beyond 1.3 and come up with a new vision for what we think is important in enterprise logging.

Firstly, what do people think of this idea?

log4j 1.3 in my opinion is stuck in a hopeless position. It is too incompatible with log4j 1.2.x to ever be recommended as a drop-in replacement for log4j 1.2 in a production environment. However, if you changed log4j 1.3 to be drop-in compatible with log4j 1.2, then you would break any apps that had depended on its 1.3-ness.


Secondly, what do people think is left to do before preparing for a fully supported 1.3 release ?


There are still API incompatibilities (http://people.apache.org/ ~carnold/compatibility.html), particularly any user extensions of DOMConfigurator (bug 39024) would not work with log4j 1.3. LoggingEvent is not serialization compatible (bug 35159). LoggingEvent.sequenceNumber can't achieve what it thought it could achieve and should be removed (bug 36555, maybe others). The Gump runs have been failing for over a year on the scheduler code behind the reworked configureAndWatch methods. Mark Womack threw a quite a bit of time on that and could not get it diagnosed. And if you fixed all that, you would still break apps that didn't explicitly call activateOptions(), it would not address the fundamental concurrency problems and would still target early JDK's.

Third, who in the dev community (not just committers) is prepared to provide some effort in this regard.


Elias Ross appeared to be motivated to push log4j 1.3 forward and while I did not think it was where I thought my time was best spent (and I've spent a huge amount of time killing off incompatibilities), I was willing to let him prove me wrong and the PMC granted him commit privileges. Unfortunately, he did a bug fix spurt and then disappeared.


On Apr 3, 2007, at 12:10 AM, Jacob Kjome wrote:

I think it's been said before that 1.3 may be more of a dead end than anything else. Some interesting things went into it, but the fact that it became so incompatible with Log4j-1.2.xx is a real problem. Is it worth a release or do we just leave it as-is, forever alpha, and move on to 2.0?

I think forever alpha and move on to 2.0.


>We can then step back and think way beyond 1.3 and come up with a new
>vision for what we think is important in enterprise logging.
>
>Firstly, what do people think of this idea?
>

As long as we're considering things that have been ignored for a while, what is our official take on Logback? It's basically a realization of what Log4j-1.3 was supposed to be, no?

I've been hesitant to deeply examine logback as its code is LGPL'd and would want to avoid leakage of logback code into log4j. We have a bit of a marketing disadvantage here as Ceki has been very vocal on the mailing lists encouraging people to migrate to logback and saying that log4j development is dead (I'd agree that it hasn't been healthy recently, but we've never decided that it is dead). I'm also a bit of a lightning rod for Ceki and think any evaluation of logback would be better coming from someone else.

Do we really have plans to best it as Log4j-2.0? I'm not saying we don't. I'm just asking the question.

logback is always going to be a better logback than log4j 2.0 and likely a better log4j 1.3 than log4j 2.0. However, I think that the design goals and approaches envisioned for log4j 2.0 will result in something valuable to the community.

And what are we going to do about SLF4J? It's gained significant acceptance and we've punted on how we are going to approach it; implement it directly, write a wrapper for it (actually, this has already been done by the SLF4J team), or ignore it altogether. So far, we've chosen the latter as the path of least resistance.


From a packaging and maintenance perspective, it has always been preferable that SLF4J be a wrapper over log4j. There were never any benchmarks provided to quantify the supposed performance benefit of a direct implementation. If I remember correctly, supporting SLF4J directly introduced a breaking API change when code was recompiled. I think the current state is the best for the community. log4j 1.2 users who want to use SLF4J can do so without forcing them to update their log4j 1.2 version and log4j does not have a dependency on SLF4J.


>Secondly, what do people think  is left to do before preparing for a
>fully supported 1.3 release ?
>

Do we want to "fully support" 1.3 or just move on? Log4j-1.3 is much larger than 1.2 because of, among other things, Joran. Joran in 1.3 was Ceki's brainchild and continued development of it has long since moved to Logback. I'd be more comfortable letting Logback developers maintain the official version and use it instead of maintaining it ourselves. I can't recall where I read it, but I believe it was stated that Joran could be used in other projects, separate from Logback. Of course, then why not just use Logback? Unless people are truly prepared to put in the time to figure out what the future of Log4j should be (and implement it), I'm afraid that Log4j-1.2.xx is the end of the line, though I'm completely open to being proved wrong.

Joran is not the only configuration processor in existence, there are likely several in ASF alone (http://ws.apache.org/synapse/ Synapse_Configuration_Language.html for example). I'd see log4j 2.0 primarily configured by JMX and expose a configuration API that could be driven by a log4j 1.2 compatible property and dom configurators and something like the strictxml configurator.



On Apr 3, 2007, at 2:09 AM, Paul Smith wrote:

I think it's been said before that 1.3 may be more of a dead end than anything else. Some interesting things went into it, but the fact that it became so incompatible with Log4j-1.2.xx is a real problem. Is it worth a release or do we just leave it as-is, forever alpha, and move on to 2.0?


From a Chainsaw point of view a lot of work on creating good Appender->Receiver stuff was done, and as I setup a decent environment for our QA and Ops team to use Chainsaw through a firewall (port forwarding) while our app is using log4j 1.2.14, I'm beginning to see a dilemma. serialized LoggingEvents from 1.2 just don't contain lots of info coming out the other end. I then asked myself the question "Should we upgrade our app to use log4j 1.3", and I honestly couldn't say what the quality was, hence the line-in- the-sand email.

I'd love to hear (in a different thread) what would need to be back- ported to log4j 1.2.x to move Chainsaw back over it.



As long as we're considering things that have been ignored for a while, what is our official take on Logback? It's basically a realization of what Log4j-1.3 was supposed to be, no? Do we really have plans to best it as Log4j-2.0? I'm not saying we don't. I'm just asking the question. And what are we going to do about SLF4J? It's gained significant acceptance and we've punted on how we are going to approach it; implement it directly, write a wrapper for it (actually, this has already been done by the SLF4J team), or ignore it altogether. So far, we've chosen the latter as the path of least resistance.


My somewhat superficial scan over logback shows a lot of promise from an end user point of view. I would certainly be interested in exploring that as an option. This is where licenses, politics and marketing all come to a head which are never fun.

* Is bringing logback into Apache something the logback community would even remotely consider? Ceki, I know you're watching, do you think that it might obtain wider exposure by coming under the logging.apache.org banner? Is that something that you've ever thought of? I totally respect the community logback has already established.

* Would the Apache dev community even consider looking at that sort of proposal?

I think offering logback with a double license (LGPL and ASL) would be beneficial. Ceki spun off the SLF4J effort since he thought he would be more effective outside of the ASF and the overhead of community development and governance. I haven't seen any indication that that has changed. Also, it would have to come through the incubator and that isn't fun. I believe the ASF board is determined that code that isn't developed in accordance with open, public discussion and conflict resolution should not be in the ASF.


Apache log4j has a decent 'brand' behind it, and many people are familiar with it and support it, but we've become stagnant, and perhaps people are moving on. The logback project, if 'absorbed' as a new log4j version could well gain bigger traction quickly purely because of that brand and revitalize logging.apache.org as a broader community (I'm thinking non-java languages here). What we want is a healthy dev community, and right now I'm not sure we (log4j) have one. Curt's been the only one doing anything recently.

I'm definitely supportive of efforts with other languages (but it would also need to come with motivated developers). There is an open bug request on logging for Javascript (bug 36961). I don't think that the health of log4j development or bringing logback into LS would make or break a log4js or a log4 ruby et al. If someone is interested in building a community for an effort in a particular language, start a thread on [EMAIL PROTECTED] and we can look at starting a sandbox project.

I'd be keen to consider starting Chainsaw v3 from scratch along side any post-log4j1.3-type operation and build in exceptional support for enterprise log management, but I'm only one person, and I know many of us are incredibly busy, but we were so active there for a while I think of the potential of what we could achieve! :) From a Java point of view I think many of the Java 1.4+ network library, and java.util.concurrent stuff could be well used in a new logging package.


Do we want to "fully support" 1.3 or just move on? Log4j-1.3 is much larger than 1.2 because of, among other things, Joran. Joran in 1.3 was Ceki's brainchild and continued development of it has long since moved to Logback. I'd be more comfortable letting Logback developers maintain the official version and use it instead of maintaining it ourselves. I can't recall where I read it, but I believe it was stated that Joran could be used in other projects, separate from Logback. Of course, then why not just use Logback? Unless people are truly prepared to put in the time to figure out what the future of Log4j should be (and implement it), I'm afraid that Log4j-1.2.xx is the end of the line, though I'm completely open to being proved wrong.

What you say certainly seems possible. If we're not careful, the log4j project could dwindle into nothing (not that that's a problem, just sad).

I expressed some of the same sentiments in the last board report. Unfortunately, the minutes haven't been published yet.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to