The Diagnostic Log

What is the diagnostic log?

The diagnostic log is a text file we create which includes a date and time stamp, a string representing some specific part of RPM or another program, and some logging text. We include the program name (except for RPM itself), the date and time, and the extension ".log". It’s a plain text file.

When we start up the program we erase empty log files and make sure that for any given program there are no more than 7 diagnostic log files. This way you don’t need to be concerned about log files consuming your disk, assuming you don’t go heavy on the logging and that you don’t run the codes for months at a time.

The diagnostic log came out of my desire to run RPM in debug mode on a customers network with their data, to see at a certain place in the code, that we were there in the code and what the data looked like.

The message log is more of a summary statement of something that happened, and the event log is more of a status log.

I’ve had people look at the diagnostic log and tell me it doesn’t show any errors. My response to that is it often doesn’t report an error but is more useful for what it does say, and what should be there but isn’t.

How do I work with the diagnostic log?

The RPM service and many of the programs we launch from RPM create their own diagnostic log. The settings are in an XML file, and the name of the XML file is based on the program name.

Nearly any time you need to work with diagnostic log settings, it will be in RPM and not one of the other programs. We provide a user interface for for that, so you need not be concerned.

For the other programs there’s an XML file. We’ll talk more about that later.

The output log name is based on the program name. We add the current date and time to the program filename minus the ".exe" extension. For instance, here are the RPM service logs on my machine right now:

10/19/2018  06:05 AM            38,396 rpmsrv-20181019-060444.log
10/19/2018  06:26 AM            27,636 rpmsrv-20181019-062343.log
10/19/2018  06:35 AM            22,205 rpmsrv-20181019-062651.log
10/19/2018  06:39 AM            74,048 rpmsrv-20181019-063813.log
10/31/2018  10:37 AM            77,254 rpmsrv-20181025-131426.log
10/31/2018  10:42 AM           345,306 rpmsrv-20181031-103834.log
10/31/2018  11:39 AM           675,072 rpmsrv-20181031-104211.log

The reason the last file is so large is that I’ve been running RPM all afternoon doing some tests. You can tell from the name I started RPM at 10:42 AM October 31.

Where are the diagnostic log settings?

As mentioned above, the diagnostic log gets its settings from an XML file. Most of the XML files are the same name as the executable file; the exception is the RPM service. It should be "rpmsrv.xml" but we had already programmed the user interface to use "log.xml" so we make a special case for that.

All the other programs use their own program name for the XML file, for instance, dbpipe.exe uses dbpipe.xml.

For the most part, the XML file consists of a bunch of names with a setting which is either "true" or "false". The user interface manages the settings for the RPM diagnostics. Go to Help / Diagnostic Logging:

You would use this form to toggle those settings on or off. Some parts of RPM will pick up the current setting as it runs, but some parts of RPM are run from the beginning through to the end so you would need to restart the service.

How to change diagnostic settings other than RPM

First, here are the diagnostic settings files in my RPM install folder:

03/15/2018  03:10 PM               586 config.xml
04/17/2018  04:27 PM               494 dbpipe.xml
10/31/2018  11:26 AM             6,807 log.xml
10/03/2018  03:45 PM               302 QueueFolders.xml
03/29/2018  10:55 AM                78 rpmgui.xml
07/19/2018  12:27 PM                78 rpmguic.xml
07/30/2018  09:37 AM               102 TestRaw.xml
07/27/2018  04:57 PM               102 testtext.xml

I may have a few more than you because I might run more programs than the typical user. At a minimum, you should have config.xml, dbpipe.xml, log.xml, and QueueFolders.xml. There is no "config" program as this file is created by the user interface when you install RPM.

Please don’t be overly concerned about which files you have or don’t have.

Let’s walk through an example of changing a setting for dbpipe, should there be a reason (which is unlikely). Launch the Windows Notepad program and open the file dbpipe.xml in the RPM install folder:

You should only work with these files on advice from our support staff. Nonetheless, to turn "on" the setting for dbpipe in this file, you would change this line:

<dbpipe value="false" />

To read like this line:

<dbpipe value="true" />

Note that all I’ve done here is to change the text "false" to "true".

Important note on making changes in these files

By the way, I don’t recommend making these changes. In fact, certain ones will degrade RPM’s performance on your system in an unbelievable manner.

These files are very particular and if you don’t feel your editing skills are up to it, we can help. It’s rare that anyone would need to do this; 99.8% of the time it’s enough to work with the diagnostic log settings form.

You should stick with the advice of our support staff, and once your problems are resolved I heartily recommend that everything be changed back from "true" to "false" with the following exceptions.

Default values we consider useful

In general, all the settings in the RPM service diagnostic log should be off except for these:

  • RpmSrv
  • app-start
  • app-finish
  • ntservice

These values are so useful that recently we added support in the RPM installer to turn these on by default.