I've been thinking that it might be good to repackage the log4j 1.3 PatternLayout so that it can be used in conjunction with existing versions of log4j 1.2.x. The process that I'd see is:

1. Fix cosmetic Checkstyle/PMD reported problems for PatternLayout and associated classes on log4j/trunk 2. Create a sandbox project similar to recent expression-filter project and copy code over
3. Address any log4j 1.3 dependencies
4. Change the package or classname to org.apache.log4j13.PatternLayout or o.a.l.PatternLayout13 so that it could be used in conjunction with log4j 1.2.x.
5. Gather feedback
6. Vote to release formatter, expression-filter and pattern-layout as companion products for log4j 1.2.x. At that time, move the code from sandbox to logging/log4j/companions.

Actual log4j 2.0 would branch off from step 3 above.

1. Adopt JDK 1.5-isms internally: StringBuilder instead of StringBuffer, Typed containers, etc
2. Any appropriate internal refactoring/packaging

At this point, we should still have a functional PatternLayout that could be used with log4j 1.2 but only when run on JDK 1.5

3. Refactor o.a.l.spi.LoggingEvent and related (Level for example) to an interfaces that could supported by wrappers around various implementations of the concept (java.util.logging.LogRecord, log4j 1.2 and 1.3's LoggingEvent).

4. Refactor Layout interface. Would want to have an interface for layouts that convert a LoggingEvent to a sequence of characters (classic log4j 1.2 Layouts) and another for layouts that convert a LoggingEvent to a sequence of bytes (LoggingEvent serialization,XMLLayout). A character layout combined with a character encoding could be combined to form a byte layout.

5. Create adapters for log4j 1.2 and cut an pattern-layout companion to log4j 1.2.x which is implemented internally as using log4j 2.0 constructs

6. Start refactoring Appender framework and start log4j 2.0 development in earnest.




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

Reply via email to