![]() |
Development Lifecycle »
Debug Tips »
General
Intermediate
License: The Code Project Open License (CPOL)
CSAStatusLog - status loggerBy Chris LosingerA very simple text logger that allows you to use printf-type formatting, with automatic application name and date stamping |
VC6, Dev, QA
|
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||
CSAStatusLog is a very simple text logger.
The coolest part of this little class is that, much like printf and TRACE, it allows you to use string format text : "%2.4f", "%s", etc.. It will automatically add the application name and timestamp (both optional) to each line. That saves you the trouble of doing CString::Formats or sprintfs each time you need to log something. We love it here at Smaller Animals Software.
Sample output :
CStatusLogDemo : 11/18/1999 16:47:43 : Howdy, stranger! CStatusLogDemo : 11/18/1999 16:47:43 : Did you know that 15 * 32.43 = 486.51 ? CStatusLogDemo : 11/18/1999 16:47:43 : Ain't that great? CStatusLogDemo : 11/18/1999 16:47:43 : I'm at : 0x4069b8 CStatusLogDemo : 11/18/1999 16:47:43 : Is anyone else here? CStatusLogDemo : 11/18/1999 16:47:43 : Howdy! CCStatusLogDemoDlg here. CStatusLogDemo : 11/18/1999 16:47:43 : My address is 0x12fe78 CStatusLogDemo : 11/18/1999 16:47:45 : CCStatusLogDemoDlg, sayin "Good bye" CStatusLogDemo : 11/18/1999 16:47:45 : (cancel) CStatusLogDemo : 11/18/1999 16:47:45 : Bye byeThe interface is simple :
// set the base file name ("Status.txt", for example) void Init(const char *pOutputFilename); // output text, just like // TRACE or printf ( log.StatusOut("%d %s", iData, lpsData); ) BOOL StatusOut(const char* fmt, ...); // turn it on or off void Enable(BOOL bEnable); // timestamp each line? void PrintTime(BOOL b); // print the application name? void PrintAppName(BOOL b); // override the default app name, which is the name the EXE (minus the ".exe") void SetAppName(const char *pName);
Use it like this
// instantiate one of these somewhere. // we usually do a single logger for the entire app. CSAStatusLog log; .... // start it up log.Init("Status.txt"); log.Enable(TRUE); log.PrintTime(TRUE); log.PrintAppName(TRUE); .... log.StatusOut("%s, %4.2f complete", pProcedureName, fPercentComplete); .... log.StatusOut("The thingy returned %d but I was expecting %d", iReturn, iExpected); .... log.StatusOut("All hope is lost. %s has asked for %d %% of %d.", lpsDummy, iPercent, iTotal); ...
That's it. Have fun.
| You must Sign In to use this message board. | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 17 Nov 1999 Editor: Nick Parker |
Copyright 1999 by Chris Losinger Everything else Copyright © CodeProject, 1999-2009 Web21 | Advertise on the Code Project |