# Trace Viewer

The new TraceViewer form is part of the new diagnostics functionality in the PPJ Framework. When using our FormViewerTraceListener, all traces are immediately sent to our TraceViewer form. The viewer runs on a separate thread and doesn't slow down the application.

In future releases we will add remote listeners to allow IT departments to connect to deployed instances of the application and receive internal diagnostics information from the PPJ Framework and from their own code if they use the standard .NET Trace classes and our new trace API.

<div align="left"><figure><img src="https://iceteagroup.com/docs/media/clip0017.png" alt=""><figcaption></figcaption></figure></div>

&#x20;The viewer is quite simple. It shows all traces coming in. Using the viewer you can search the traces, save them to a file or reload a saved file. You can also filter the traces by enabling or disabling the sources.

**Load a trace file**

Loads a file saved by the trace viewer or by the TextWriterListener. In future builds we will add support for XML and other formats.

**Save a trace file**

Saves the trace rows to a text file.

**Copy rows**

Copies the selected rows to the clipboard.

**Filter sources**

Enables or disables receiving traces for the selected sources. Note that if a source is not enabled in the app.exe.config file or programmatically, the trace calls will not reach the listener and cannot be displayed in the trace viewer even if the source is enabled here.

<div align="left"><figure><img src="https://iceteagroup.com/docs/media/clip0018.png" alt=""><figcaption></figcaption></figure></div>

**Search**

Selects the next row that contains the typed text.

**Start/Stop**

Disables or enables receiving traces from the application.

**Clear**

Deletes all the trace rows.
