This project is read-only.

ProdSession Configuration

To make the configuration and use of ProdSessions easy, a tool has been developed to allow you to work with the underlying configuration file.


1. From here, you can choose to begin a new session (shown), open an existing session, or save a session.

2. This is the area where the session-specific identifiers are set. The session ID and name can be just about any value the user wishes. When you first create a session, a GUID is generated and defaulted to both the name and the ID. These values can be changed. At this point, the session name and ID are for the user to reference global settings from a Prod program.

3. When referencing a ProdSession, every time a Prod is executed, the session sets up a “listener” to verify the operating system did indeed receive that event.  To prevent a hung (stuck in an infinite loop) session, the event handler will throw an exception after a certain amount of time if the Prod has not been received. The event timer will allow the user to fine-tune this delay according to system performance levels. Between 5-8 seconds is sufficient in most cases.

4. The bottom portion of the screen consists of several areas to configure event-logging options.





A. On the far left, you can add a “logger”. This is a library that passes messages up a chain for logging each desired event. A session can have any number of loggers, each pointing to its own output location and each filtering a different message. Loggers can be written by anyone using the (proposed) SDK, but for now, we’ve supplied pre-written DebugOut, MessageBox, Text File, and XML File loggers.

When creating a new session, no loggers are loaded by default, so you must click the “New” logger button to begin configuring one. This will enable the rest of the controls located within the “Session Logger Configuration” area.

B. The top set of controls provides an area for you to name each logger. It’s best to describe its use, like “ErrorLogger”. Below is a file-browser section to navigate to the .dll containing your logger. The default loggers are located in the ProdUI/Common/Loggers folder. In this example, we’ll use the DebugLogger, which will write messages to the debugger’s output window.

C. Now you can choose the amount of information you want logged by setting the verbosity. A typical prod, such as a button click, won’t provide a large amount of information. However, a Prod such as “GetListItems” will provide basic information about the Prod, but also makes additional data available. Using “GetListItems” as an example, the function retrieves a control’s list data. If you were to choose “minimum”, this logger would not capture the control’s data.. However, if it were set to “Full”, all captured information would be sent with the log entry.

D. The center group determines how your log entries will be formatted. There are 4 possible log-points:

  • The time the message was generated
  • The message level (see below)
  • The name of the function that generated the log message
  • The actual message text.

The order in which these points occur within an entry can be set using the arrow buttons next to the ListBox. The corresponding checkbox can be used to toggle whether it logs or not.

Below the list is a textbox to define the timestamp’s date format. It follows the “Standard Date and Time Format Strings” documented at The example shown, “T”, gives the Long time format (e.g. “6:30:00 AM”).

As you make changes, the example label will update in real time, giving you an idea of what that log entry will look like.

E. The far right area sets the type(s) of messages to be gathered by the logger, In the above screenshot, any messages marked with an importance level of Informational, Prods, or Errors will be sent to that logger.

F. The bottom area marked “Logger Parameters” is only used when a Logger needs additional information, such as a file output path for a TextFile logger.


After configuring the logger, save it to the using the File->Save menu item.

From here, you can add more loggers. Keep in mind each logger has its own set of parameters. That is to say, each logger has its own verbosity, levels, etc.

Once you’ve added a logger, you can edit its properties by clicking the “Edit” button. This will re-enable those options for you to alter. When you’re finished editing the logger, you’ll need to File->Save again. To instead prevent any changes, just click the “Cancel” button.

Use the “Remove” button while an item is selected to delete it (the session must be saved for the changes to apply)

A session file (.ses) can also be opened and edited in much the same manner, making reuse of the parameters easier. The Session ID textbox has a context option to generate a new GUID, to make it simpler to differentiate sessions.


Last edited Sep 4, 2011 at 10:08 PM by hroark, version 5


No comments yet.