Std Phobos 2 and logging library?

Adam D. Ruppe destructionator at gmail.com
Fri Apr 10 09:41:10 PDT 2009


On Fri, Apr 10, 2009 at 09:20:46AM -0700, Andrei Alexandrescu wrote:
> If anyone has ideas and/or code to contribute, that would be great.

I never understood why they should be complicated. Couldn't you just do
something like (pseudocodeish):

======

enum LogLevel { Verbose, Warning, Error }

FILE* logStream;
LogLevel currentLevel

// We need to open the log file ahead of time; this might be from command
// line args in a real program.
static this() {
	logStream = stderr; // or fopen("log", "wt"); or whatever
	currentLevel = LogLevel.Verbose;
}

static ~this() {
	fclose(logStream);
}

void log(LogLevel message, formatted message...) {
	if( currentLevel >= message) {
		logStream.writef("%s: ", currentTime() );
		logStream.writefln(formatted message....);
	}
}

void fun() {
	log(LogLevel.Verbose, "Entering function %s", __FUNCTION__);
	if ( crap )
		log(LogLevel.Error, "Crap happened!"
}

=======


Does it really need to be much more complex than that?


> 
> Andrei

-- 
Adam D. Ruppe
http://arsdnet.net



More information about the Digitalmars-d mailing list