[ANN] Continue working in SimpleLogger

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

[ANN] Continue working in SimpleLogger

Mariano Martinez Peck
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-users mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-project] [ANN] Continue working in SimpleLogger

Stéphane Ducasse
why don;t you look look at toothpick?


On Oct 21, 2010, at 3:23 AM, Yanni Chiu wrote:

> 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
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-users mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-project] [ANN] Continue working in SimpleLogger

Mariano Martinez Peck
In reply to this post by Mariano Martinez Peck


On Thu, Oct 21, 2010 at 3:22 AM, Yanni Chiu <[hidden email]> wrote:
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.

Yes, that's true. However, take a look at the code, and I promisde that in no more than 10 minutes you get the idea how to use it. There are 5 classes, with an average of 5 methods each.
 

IMHO, it should be a fork: SomewhatSimpleOnItsWayToComplicatedLogging :)


heheheh
 
--
Yanni


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-users mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-project] [ANN] Continue working in SimpleLogger

Mariano Martinez Peck
In reply to this post by Stéphane Ducasse


On Thu, Oct 21, 2010 at 7:24 AM, Stéphane Ducasse <[hidden email]> wrote:
why don;t you look look at toothpick?


Because I don't have time to learn a new logging framework, nor to make it work on Pharo. I don't plan to be part of a logging framework. I just needed something really EASY for my projects. So, I remembered Germán doing that, I know it was working in Pharo, and it took me 5 minutes to understand. 2 hours more to add my features, and that's all :)  I just make it public for other users.

Chees

Mariano
 

On Oct 21, 2010, at 3:23 AM, Yanni Chiu wrote:

> 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
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-users mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users


_______________________________________________
Pharo-users mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-project] [ANN] Continue working in SimpleLogger

Stéphane Ducasse
In reply to this post by Stéphane Ducasse
come on tooth pick has even documentation and it does not look complex.
redoing all over things does not reduce bugs and

http://www.metaprog.com/Toothpick/docs/quickstart.html
It looks clean and simple.



Stef

On Oct 21, 2010, at 9:51 AM, Mariano Martinez Peck wrote:

>
>
> On Thu, Oct 21, 2010 at 7:24 AM, Stéphane Ducasse <[hidden email]> wrote:
> why don;t you look look at toothpick?
>
>
> Because I don't have time to learn a new logging framework, nor to make it work on Pharo. I don't plan to be part of a logging framework. I just needed something really EASY for my projects. So, I remembered Germán doing that, I know it was working in Pharo, and it took me 5 minutes to understand. 2 hours more to add my features, and that's all :)  I just make it public for other users.
>
> Chees
>
> Mariano
>  
>
> On Oct 21, 2010, at 3:23 AM, Yanni Chiu wrote:
>
> > 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
> > [hidden email]
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-users mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-users mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-project] [ANN] Continue working in SimpleLogger

drush66
On Thu, Oct 21, 2010 at 10:03 AM, Stéphane Ducasse
<[hidden email]> wrote:
> come on tooth pick has even documentation and it does not look complex.
> redoing all over things does not reduce bugs and
>
> http://www.metaprog.com/Toothpick/docs/quickstart.html
> It looks clean and simple.

Is squeak version working ok on Pharo? (I guess it does, but just checking)

rush
http://www.cloud208.com/

_______________________________________________
Pharo-users mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-project] [ANN] Continue working in SimpleLogger

Stéphane Ducasse
In reply to this post by Stéphane Ducasse
Probably now we can cretae a pharo project and port it. The license is BSD.

Stef

On Oct 21, 2010, at 10:07 AM, Davorin Rusevljan wrote:

> On Thu, Oct 21, 2010 at 10:03 AM, Stéphane Ducasse
> <[hidden email]> wrote:
>> come on tooth pick has even documentation and it does not look complex.
>> redoing all over things does not reduce bugs and
>>
>> http://www.metaprog.com/Toothpick/docs/quickstart.html
>> It looks clean and simple.
>
> Is squeak version working ok on Pharo? (I guess it does, but just checking)
>
> rush
> http://www.cloud208.com/
>
> _______________________________________________
> Pharo-users mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users


_______________________________________________
Pharo-users mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users