std.log available for viewing

Daniel Gibson metalcaedes at gmail.com
Sun May 29 14:20:31 PDT 2011


Am 29.05.2011 22:57, schrieb Brad Roberts:
> On 5/29/2011 8:44 AM, Andrei Alexandrescu wrote:
>> 1. The fatal log should never be stripped. This is because execution of code after using fatal depends on compile-time
>> flags, which is unacceptable. Logging to fatal should terminate the application regardless of circumstances. Otherwise
>> people would need to write things like:
>>
>> fatal("blah");
>> assert(0, "Execution cannot continue even though logging is stripped");
>>
>> This is needless and bug-prone. Fatal is fatal.
> 
> At one time I used a log framework that included this behavior.  After a couple years, I came to greatly regret it.
> Fatalness down in libraries became overused, particularly in layers that were libraries.  In some ways it was abuse of
> fatal for things that shouldn't have been, but it's mere existence encouraged it's use.
> 
> I really don't think it's the log libraries job to implement app termination behavior.
> 
> My 2 cents,
> Brad

Also imagine the following scenario: You detect a fatal error and want
to log it, while all the useful information you want to log is at hand.
However afterwards you'd like to shut down the application gracefully to
leave your data as consistent as possible or whatever, so you don't want
the application to terminate immediately after fatal() but you want to
do error handling yourself and terminate afterwards (and what you do for
error handling/shutting downmay be dependent on the error, so just using
scope(error) may not be the easiest choice).

Cheers,
- Daniel


More information about the Digitalmars-d mailing list