Home DevTools Products  
Events
Support
About Us
Search
 
 
 
 

Latest Build: 5.1.4 - Check Updates Page for Details

When CodeSite was first introduced, it immediately changed the way developers locate problems in their code. In subsequent releases, CodeSite was extended beyond the developer's workstation to become a full-featured application logging system. Now, CodeSite 5.0 takes application logging and debugging to a new level by focusing on developer productivity, usability, logging capabilities, and deployment.

CodeSite 5.0 supports the latest development frameworks and integrated development environments including Embarcadero RAD Studio XE4. CodeSite 5.0 introduces a redesigned message transport format, a flexible new log file format, and even more ways of logging important information from your application. For example, CS5 includes new TraceMethod functionality, profiling timers, PNG image support, and much more. In addition, CodeSite messages can now be transported and saved in a log file in compressed format, which reduces the size of the message on disk and also obfuscates the message data the log file.

So, whether you are developing native 32-bit applications using Delphi or C++Builder, native 64-bit applications in Delphi XE2 or later, or managed apps based on the Microsoft .NET Framework, CodeSite will handle your logging needs.

For a more detailed look at what's new in CodeSite Studio 5, please read the following PDF document:

What's New in CodeSite Studio 5 PDF Document: WhatsNew.pdf

So, don't delay, upgrade to CodeSite Studio 5 today!


Overview

The CodeSite Logging System gives developers deeper insight into how their code is executing, which enables them to locate problems more quickly and ensure their application is running correctly. CodeSite's logging classes let developers capture all kinds of information while their code executes and then send that information to a live display or to a log file. Furthermore, both styles of logging, live logging and file logging, can be performed locally or remotely (via TCP, UDP, or HTTP).

A key element to CodeSite's effectiveness is that unlike message boxes and inspecting variables on breakpoints, CodeSite messages are not transient. The resulting log of messages provides valuable information for locating problem areas in your code. In addition, sending CodeSite messages does not interrupt the flow of your application as happens when message boxes and breakpoints are used. As a result, CodeSite is much more effective in situations where user interactions (eg. focus changes) and painting issues need to be tracked.

CodeSite also addresses several shortcomings with traditional logging/tracing solutions. For example, CodeSite allows logging complex data structures and is not limited to simple strings. CodeSite also provides more control over what gets logged and when. Instead of relying on arbitrary logging levels, separate loggers are used to categorize CodeSite messages. CodeSite also gives developers more flexibility in managing their logging information such as enabling multiple applications (or multiple instances of the same application) to send logging information to the same log file. In addition, the CodeSite viewers, which are designed specifically for analyzing CodeSite logging messages, provide extensive, easy-to-use tools for analysis.

There are three core components to the CodeSite Logging System:

  • The CodeSite Logging Classes
  • The CodeSite Dispatcher
  • The CodeSite Viewers

The CodeSite Logging Classes

The primary logging class that developers use is T|CodeSiteLogger. (TCodeSiteLogger in Delphi, CodeSiteLogger in .NET.) However, in most cases, developers do not have to manually construct an instance of the T|CodeSiteLogger class. Instead, the CodeSite logger instance can be used immediately. In the Delphi, CodeSite is a global instance of the TCodeSiteLogger class. In .NET, CodeSite is a static class that uses an internal CodeSiteLogger instance.

Logging information simply involves calling methods of the T|CodeSiteLogger class. Most often, the overloaded Send method will be used. In its simplest form, a simple string message is sent. Other forms include sending numeric data types, dates and times, objects, collections, bitmaps, and much more.

The CodeSite Dispatcher

The primary logging method in T|CodeSiteLogger is named Send because it more accurately describes what happens to the information being logged. In particular, T|CodeSiteLogger instances send logging information to the CodeSite Dispatcher application, which runs in the background and is responsible for dispatching CodeSite logging messages to their final destination.

There are two basic destinations for CodeSite messages: a CodeSite Live Viewer (see below); and a CodeSite Log File. However, these two destination types may reside either locally or on a remote machine. Plus, there are several ways for the CodeSite Dispatcher to transport messages to their final destination. The location of the viewer or log file as well as the transport details to be used by the Dispatcher is contained in a T|CodeSiteDestination instance, which the CodeSite Dispatcher receives from each T|CodeSiteLogger instance.

In addition to its dispatching responsibilities, the CodeSite Dispatcher also allows for dynamic blocking of selected CodeSite message types and even selected categories. Furthermore, the Dispatcher manages a list of symbolic paths that can be referenced by T|CodeSiteDestination objects.

The CodeSite Viewers

The CodeSite Logging System comes with two viewers: the CodeSite Live Viewer and the CodeSite File Viewer. Developers will most often use the CodeSite Live Viewer, which is updated immediately as new CodeSite logging messages are received from the CodeSite Dispatcher. As a result, the Live Viewer is required for live logging.

During file logging, the CodeSite Dispatcher writes the messages it receives directly to a CodeSite Log File. However, even with file logging, one must eventually view the file contents. Although log files can be loaded into the Live Viewer, this is not always practical especially if the Live Viewer is currently being updated during a live logging session. In addition, there are features in the Live Viewer, such as the Scratch Pad, that are only applicable for live logging. As a result, the CodeSite File Viewer is associated with the CodeSite Log File extension (*.csl).

Both viewers include a wide variety of inspectors and other tools specifically designed for analyzing CodeSite messages. For example, the Message Organizer can analyze the logging messages and automatically create appropriate views to isolate messages of the same application, category, thread name, etc.


Click image to view full size