On Mon, 30 May 2011 01:13:13 +0200, Andrei Alexandrescu <seewebsiteforem...@erdani.org> wrote:

Without automated headers including location of the log line and date/time, one can't even call that a logging library.

I repeat: if people so careless that they don't know what and from where written in their log, lines and files won't help. EVERY log place must provide high level info, which must be enough for conclusion. If in 5 places you do
log(`SEND: ` ~ line)
of course your log is dump of useless lines!

Again: nothing prevent you from giving file and line, just include 'em in message! And log purpose is not only 'now I run line 20 and i = 3' - it can be log of user actions for manager's report - who cares which files/lines it involved?

It's an text streaming facility.

It is! Like any GUI library is "just a graphics rectangles to click on". :)
There is not so much 'log specific' stuff, some of 'em is just a 'tradition'. Log is TEXT, which help you to debug code.


Evaluating arguments always vs. not at all is a matter of principles.

Principles are nice in MacDonalds, programming is a bit more complex stuff, where every principle must be reasonable to apply.


* The library does not define a notion of a severity hierarchy

If you look at use cases of this 'severity', there is no 'hierarchy'

Your example describes a trivial matter. Often times, the trace leading to a critical problem is indicative of the issue in more complicated applications.

Sorry, nothing understand what you disagree with. First, I don't decline 'severity' since we can have logWarnings, logErrors, etc. Second, I just show that 'linear severity levels' helps not so much when you need selective messages - you cannot skip intermediate levels when you don't need 'em.


First, this seems to be the third time you are referring negatively about age.

Surprisingly wrong view. Not age, but OLD LIBRARIES written in 70-th, when people even didn't mention 'usability', 'maintainability' and other stuff. Nothing unusual in the fact, that programming practice made outdated some conceptions. Look at LISP - lispers sh*t with bricks proving how LISP good is. WHERE is this LISP? In the dustbin of history. What you found offensive here? Like you name spade as spade, I name old as old. *amazement*


Design is a subjective endeavor, so you can always make a counter-argument to pretty much any argument (as you just did).

Disagree. There is good conceptions, which cannot be satisfied with ugly design: extensibility, scalability, maintenance, robustness, usability ... Bad design quickly drops under good critique. I'm happy you found weak places in my draft, but some critique rely just on your imagination how logging must be used - I cannot see reason to change library by every subjective demands.


So unless you set out to implement nothing but simple streaming....

Again, it's because of your vision "what logging is". As many messages I read, same many opinions I met - from ridiculous (to me) __FILES__ and __LINES__ to "all logging is a file output routines". Before people touch any library they must create a list of requirements, discuss it (instead of pointing "oh, in library blah-blah it made like this - let's do the same!"), test in practice and only after this they may pretend to be in std.* namespace. I didn't see any discussions except already done library with automatically generated docs. Nice development, heh! :) (kill me if I'll try to buy such software)

To be more productive I can formulate my _core_ list, which can be extended with "bells and whistles", but everybody must understand where is LOG and where is I LIKE IT.

1. Minimal logging must be as simple as one function call with one string argument.
2. Log must support multiple destinations of different kind.
3. Destinations must be easy expandable - one simple class for any kind.
4. Enable/Disable log at run/compile time. IDEALLY doesn't consume CPU if completely disabled.
5. Suppport for different output formats.

That's it! Even handy string formatting is not a requirement - just because it's a 'sugar', not 'logging' itself.

In my practice I never used anything more complex due to useless of any other functionality - good log provides enough.

WBR...

Reply via email to