Good Morning,

maybe this is a different approach to allow custom (propietary) logger
development for special cases and interfaces and use at the same time log4j
quality, infrastructure and concepts:

1) creating a class abstract org.apache.log4j.AbstractLogger:
-containing (protected) methods for checking the loglevel,
really writing (so like forcedLog)
-removing all depracted methods
1b)
-extending existing class org.apache.log4j.Logger extends AbstractLogger
implements ULogger

2) creating a class abstract org.apache.log4j.AbstractLogStore
-containg (protected) methods
store(AbstractLogger logger)
remove(AbstractLogger logger)
2b) creating a class LogManager extends AbstractLogStore
-method
public static org.apache.log4j.Logger getLogger(String name)
...

Pro's:
-(backward) compatibilty with existing mechanisms
-still allowing wrappers as build in ugli
-allowing different interfaces (hm, not liked here, I write it anyway:
org.apache.ugli.JSR47Logger, org.apache.commons.logging.Log :-)
-typesafe
-compile-time bind

Con's:
-Many Developers have an 'not invented here' syndrom, so potentially
there are hundreds of project specific (senseless duplicated) AbstractLogger
implementations
-not forced but one possible result: many factories causing confusion
-refactoring of Logger needs new intensive testing, may cause
new bugs

Tonight hopefully I have some time to write a first PoC Code.

Regards
Boris


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

Reply via email to