Using glog's design for Phobos?

so so at so.do
Fri Aug 27 22:01:22 PDT 2010


> I was curious to hear what others reply - great discussion! I won't add  
> much to what was said, but I do want to emphasize a couple of points.
>
> Logging is something that 9 people do in 10 ways. As such, leaving it to  
> everybody's whim will produce many incompatible logging styles, formats,  
> and mechanisms, which is untenable in any corporation that has  
> long-running programs on more than a few servers. I smile inside  
> thinking what logging would look like if everybody at Facebook decided  
> how to do their own logging on the many tens of thousands of running  
> servers.
>
> You have already seen the value of standardizing on easy things that  
> everybody does differently - so that's why D has things such as version,  
> debug, and unittest as keywords. Most likely you have experienced  
> first-hand the outcome of leaving such simple policy decisions to the  
> whim of the user. It is easy to port that understanding and expertise to  
> a matter that is very similar even though you haven't experienced it  
> yourself.
>
> One problem with logging is that it's one of those "pure design"  
> problems - it poses almost no algorithmic or systemic challenges. This  
> unfortunately creates an opportunity for overblown designs to come forth  
> and justify their own existence ("clearly you could do logging yourself  
> easily, but it would take you a long time to implement all of this  
> framework with all these features" etc), which in turn establishes a  
> ratchet mechanism that brings up ever more intricate, feature-full  
> designs.
>
> That's why I'm saying: keep the logging library nice and simple and  
> never allow itself to take it too seriously.
>
>
> Andrei

This is one thing people ignore or just purely don't understand,
Walter in this ng always say that pushing complexity to compiler/library  
good thing
and to user is a bad thing. We all can see it is true, i assume?

For the case at hand, what would one expect from a logging library?

1 - 99% (i don't think this is an exaggeration) of the times, guess...  
logging to specific level!
2 - 1% state changes and redirection.

What all if not most of the libraries out there want you to do?

Each time you need to use it :
You need to instantiate a logger object with, with level and file etc...  
// %0-1 part
They sometimes go even further and want you call some internals... //  
another %0-1 part
Then you need to do actual stuff... // yay! 99-100% part

If one call this a design, i got nothing to say :)
This is a good example of "one solution to every problem", "single  
paradigm" sickness.

Thanks.

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/


More information about the Digitalmars-d mailing list