On 20/10/10 9:36 AM, Mariano Martinez Peck wrote:
What I did basically is to define SimpleLogger like the public API. But
then, this class delegates to a LoggerStrategy. I created the following
implementations: TranscriptLoggerStrategy, NullLoggerStrategy,
FileLoggerStrategy and FixesFileNameLoggerStrategy. In addition, I
created a superclass for them, marking the API with SimpleLogger. This
class is LoggerStrategy.
So, now you can:
- Enable and disable easily the logging (thanks to NullLoggerStrategy).
- Change on runtime WHERE or HOW to log (just change the strategy).
- Be able to write into a File, a Transcript, a FixedFileName, or nothing.
- Extend to you own strategy (FileAppendLoggerStrategy??
SocketLoggerStrategy? etc...)
My 2cents. I've not used or looked at SimpleLogger, but recall that it
was a single class, plus a metacello config class.
The new functionality sounds very useful, but is it still simple. It
sounds like it was simple to add extra features - maybe because
SimpleLogger was simple. Will the next person who comes along find a
similarly simple implementation that can be easily adapted to specific
needs.
A hierarchy of strategy classes no longer sounds simple. What if I don't
need all the different strategies loaded, will the configuration then
allow multiple build targets for various individual or groups of
strategies. Starting to sound complicated.
IMHO, it should be a fork: SomewhatSimpleOnItsWayToComplicatedLogging :)
--
Yanni
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project