Collecting Runtime Logs

All EO products maintain an internal running log that may provide useful information to troubleshoot a problem. There are several ways to collect log information. Note that the log information is encrypted.

Automatic Exception Dialog

If you use EO products in a traditional interactive Windows GUI application, EO runtime will automatically display an exception dialog with detailed log information when a EO runtime exception occurs. You can click "Copy To Clipboard" button in that dialog to copy the log information and email it to EO support. If you do not wish this dialog to be displayed, try capturing log with code.

Automatic Log File

You can set static property EO.Base.Runtime.LogFileName to a file name. When this property is set and a runtime exception occurs, EO runtime will write log information into this file. You can then email this file to EO support.

Capture Log with Code

You can handle EO.Base.Runtime.Exception event and call EO.Base.Runtime.GetLogs inside your event handler to capture internal running logs. You can save the result into a file and then send the file to EO support. Once you handle EO.Base.Runtime.Exception event, the automatic log dialog will no longer be displayed.

Manually Collect Log with DebugTools

See here for details on how to collect and submit log data to Essential Objects using DebugTools.

Capture Detailed Diagnostic Logs

Use this option to capture detailed diagnostic logs. Capturing detailed diagnostic logs have a negative impact on performance, as such it should only be used as a test/troubleshooting measure, it should not be used in production code.

Follow these steps to capture detailed diagnostic logs:

  1. Call EO.Base.DiagnosticTools.StartDiagnosticLog as early as possible in your code. For example, for a Windows.Forms application, you can add this as the first line in your Program.Main method;
  2. Reproduce the problem in your application;
  3. Call EO.Base.DiagnosticTools.StopAndSaveDiagnosticLog to save the log. You can optionally pass a file name to save the log. In this case please send the file to us. If you do not pass a file name, the log will be automatically sent to our server and the function will return a record ID. Please send us the record ID so that we can locate the log in our system.