This project has moved and is read-only. For the latest updates, please go here.

Project Description

TracerX is an easy to use logger with advanced features for .NET applications.

  1. It can send output to multiple destinations (circular file, event log, etc.).
  2. It has a powerful viewer that supports filtering by threads, category, trace level, and more. The viewer can also collapse and expand the output from each method call, show absolute or relative timestamps, and view/walk the call stack leading to any line of output. The viewer's start page lists all the TracerX log files that exist on the local computer or selected remote computer so you don't have to hunt for them. In my experience, these features make diagnosing problems much easier than using a plain text editor.
  3. The Viewer can be deployed as a ClickOnce app.
  4. TracerX has an optional service that allows the viewer to connect to remote servers that run the service and enumerate/open logs as if they were on the local machine. You can host the service in your own program if you don't want yet another service to install.
  5. The source code consists of C# projects contained in a Visual Studio 2015 solution. The viewer project requires .NET 4.0 Client Framework or later. The logger and other projects require .NET 3.5 Client Framework or later.
  6. It is very flexible and configurable.
  7. It is used by several commercial products.
Latest logger version: 7.0
Latest viewer version: 7.0

The Logger

View this CodeProject article for documentation on how to use the latest version of the Logger.

The Log Viewer

Here is a screenshot of the TracerX viewer with output from the DeleteWorker thread highlighted in green.


Most of the following features can be discovered by by exploring the menus, except for those that are accessed by double-clicking.
Don't forget to try the context menus for the rows and column headers!
  1. You can filter the log by thread name, thread number, logger, trace level, and text wildcards (I would like to add method).
  2. The message text is indented according to stack depth.
  3. You can view absolute or relative timestamps. Any row can be the "zero time" record.
  4. You can collapse and expand method calls by double-clicking rows where "+" and "-" appear.
  5. You can collapse and expand rows that contain embedded newlines by double-clicking lines with yellow triangles.
  6. The crumb-bar allows you to see and navigate the call stack leading to the selected line.
  7. You can create coloring rules to highlight lines that match specified criteria.
  8. You can bookmark individual rows or ALL rows that...
    1. contain a specified search string.
    2. are from one or more selected threads, loggers, or trace levels.
  9. You can view the call stack (in a window) leading to a selected row and navigate to rows in the call stack.
  10. You can jump to the caller of the selected row (and then to its caller and so on).
  11. You can jump to the end of the current method.
  12. You can select rows and copy the text column or all columns to the clipboard.
  13. You can export the log to a CSV file.
  14. The File menu contains a list of recently created logs on the host computer so you don't have to search for them.
  15. You can customize the columns (show/hide columns, change their order).
  16. Long messages, with or without embedded newlines, can be viewed in a resizeable text window.

The TracerX Service

The TracerX service (TracerX-Service.exe) is a new component added in release 7.0.

It's not required to generate or view log files but it makes viewing files on remote servers very convenient. Normally you would have to use Remote Desktop or create a share that contains any logs you want to open remotely. However if you run TracerX-Service.exe or host TracerX-ServiceImpl.dll in your own service/application, you can simply connect to it remotely with the viewer to gain access to the logs as if they were on the local computer.

Last edited Nov 5, 2017 at 9:00 PM by MarkLTX, version 36