On Thu, Oct 21, 2010 at 12:26 AM, Germán Arduino <[email protected]> wrote:

> Thanks you very much Mariano!
>
> Sound very interesting.
>
> I only read the mail by now (not time, as usual) but as soon as I have
> a bit of free time, will try and make my comments.
>
> Of course, not problem in that you commit on the SimpleLogger repo, I
> added you as Developer.
>
> Cheers.
> Germán.
>
>
> 2010/10/20 Mariano Martinez Peck <[email protected]>:
> > Hi guys (German).
> >
> > Today I needed to add some real log to something I am developing and I
> found
> > that SimpleLogger missed those functionalities I was needing. So...I
> > implemented them. It is 3 hours effort, so don't expect too much. But I
> just
> > wanted to shared with you in case you need it.
> >
> > 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...)
> >
> > I did these changes today morning so I didn't have time to write tests
> nor
> > class comments. However, I wrote some class side example methods in
> > SimpleLogger.
> >
> > Finally, for my own projects I want:
> > - to use a FixedFileName (very similar to the way PharoDebug.log is
> used).
> > - to only do "self log:" in my classes.
> >
> > The solution I did is that somewhere (maybe in a class of your project or
> > maybe in a special class that holds this) in a class side variable I hold
> a
> > Singleton with the Logger. So that you can always do for example:
> > MyAppLogger logger log: 'zaraza'.
> >
> > And finally, I implemented Object >> log:   (with category *MyAppPackage)
> >
> > log: anObject
> >       MyAppLogger logger log: anObject.
> >
> > With this, anywhere in the classes of my app I can do:   self log:
> > 'something'.
> >
> > The code is temporally commited in http://www.squeaksource.com/Marea
> >
> > German: if you think I should commit directly to SimpleLogger repo, just
> let
> > me know. In addition, be completely free to change it as you want and
> commit
> > it there too.
> >
> > Cheers
> >
> > mariano
> >
>
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to