HTML Logger, Portable and Thread-Safe

Environment: VC++ 6.0, XP

Introduction

I needed to create an HTML logger that would be portable across Win32 and VXWorks OSs. This code was written in a weekend, so don't judge it severely.

What the Code Does

This code will help you create colored, clear-to-read HTML logs from any C++ applications. The HTML log generated will be easy to present to a user: You just need to give a browser the generated file URL and refresh the browser when the log changes.

This code does not use MFC or any other library. To provide thread safety, there are a couple of classes (namely CLock and CGuard) that help make the code safe.

Furthermore, there are additional helper classes that hide nasty details:

  1. CGenFile—hides the file access details.
  2. CLogFont—generally an implementation of the HTML font tag.
  3. CLogColor—an implementation of the HTML color.
  4. CSmartString—a string class.

Using the Code

Instantiate CHtmlLogger in your code, create the log, and then create as many HTML tables (reports) as you wish.

  CHtmlLogger Log;
  Log.Create( "FirstHMLLog.htm" );

  //Create a table with three columns
  Log.CreateTable( 3, "First HTML log" );

  //Fill the columns
  Log.SetColumn( 0, "Heading1" );
  Log.SetColumn( 1, "Heading2" );
  Log.SetColumn( 2, "Heading3" );

  //Add the line specifying the line type (header in this case)
  Log.AddLine( 0, CHtmlLogger::LT_Header );

Kindergarten stuff, right? The return values validation was removed for clarity. You should look at the sample provided to see the full API. The sample will create the sample log you see in the picture.

Enjoy...

Downloads

Download demo project - 32 Kb


Comments

  • A better way.

    Posted by Legacy on 12/17/2002 12:00am

    Originally posted by: Guess Who

    Whenever I create a server application or middleware or anything which has a log that I am interested in; I use an http server. This way you can display the data in real-time by just directing your browser to a certain ip address and port.

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

Top White Papers and Webcasts

  • Today's agile organizations pose operations teams with a tremendous challenge: to deploy new releases to production immediately after development and testing is completed. To ensure that applications are deployed successfully, an automatic and transparent process is required. We refer to this process as Zero Touch Deployment™. This white paper reviews two approaches to Zero Touch Deployment--a script-based solution and a release automation platform. The article discusses how each can solve the key …

  • By now, every company has a business continuity (BC) plan, right? Not quite. Many US businesses aren't equipped to deal with major disruptions. The adoption of BC practices remains low, as many a C-suite folks simply have the "it can't happen to us" mentality or they have a subjective notion of risk, assuming that they can withstand disaster. Read this article bundle to learn why your BC plan can't wait, tips on how to get started with your plan and what it should contain, and much more.

Most Popular Programming Stories

More for Developers

RSS Feeds

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