LogTrace - A DLL to log trace output to a file

Environment: MSVC 5.0

The code was designed to build a dll to log trace statements to a text file at customer sites. At the end of the day the customers emails me the text log.
To use the LogTrace.dll in your project add LogTrace.lib to the Object/Library modules in your linker settings and include the header Trace.h to your project.

In your InitInstance() call


	TraceStart();

or

	TraceReadINI();

After that you can call Trace() like printf or TRACE

	Trace("This is my string value [%s]\n", m_strMessage);  //Works like printf or TRACE

Exported functions

TraceStart(char *pszPathName = NULL) A call to TraceStart() will start tracing until end of execution or TraceStop(). The log will default to the directory of the application that called it. You can over ride the default behavior by passing in your own path, file name and file name extension. The existing log is always numerically archived. If more than one instance of an application is executing, then susequent applications will have the post fix 'HMODULE' in the log entries.
TraceReadINI() Reads control values from the applications ini file.

[TRACE]
;Specific log name and path
PathAndFileName=C:\A_TEST\mylog.txt
;1: file will be flushed after every Trace(), 0: no flushing
FLUSH=0

If you use TraceReadINI then you do not have to use TraceStart.
Trace(const char *pszFormat, ...) Works just like TRACE() or printf(). The first parameter can be any length, the sum of the additional parameters is limited to 1024 characters.
TraceSuspend(bool bTrueToSuspend) When true logging is suspended until set back to false.
Default is false
TraceStop() The current log is closed. To continue logging, explicitly call TraceStart(). In the event of multiple programs writing to the same log, the log will not be closed. The next call to TraceStart() will append to the existing log.
TraceClockCapture(char* pszComment = NULL) Captures the current clock value.
TraceClockDuration (char* pszComment = NULL) Writes the number of seconds passed since the last TraceClockCapture().
TraceFlush(bool bForceFlush) You can turn it off to increase performance, but if the application fails you may not get the last several dozen statements logged written to the log file.
Default is true.
TraceWithTime(bool bValue) Causes the Trace() statement to output the time of each trace statement. The year value is not output.
Default is true.

Download source - 10KB



Comments

  • Request for change.

    Posted by Legacy on 02/28/1999 12:00am

    Originally posted by: Brain Koch

    Can this be modified to write to a zipped file, rather than a text file?

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • This report outlines the future look of Forrester's solution for security and risk (S&R) executives working on building an identity and access management strategy for the extended enterprise. We designed this report to help you understand and navigate the major business and IT trends affecting identity and access management (IAM) during the next five years. IAM in 2012 has become a tool not just for security but also for business agility. Competitive challenges push businesses into the cloud and encourage …

  • Companies undertaking an IT project need to find the right balance between cost and functionality. It's important to start by determining whether to build a solution from scratch, buy an out-of-the-box solution, or a combination of both. In reality, most projects will require some system tailoring to meet business requirements. Decision-makers must understand how much software development is enough and craft a detailed implementation plan to ensure the project's success. This white paper examines the different …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date