The Diagnostic Log

Introducing the diagnostic log

Diagnostic logging is the most advanced logging mechanism in RPM. We recommend changing these settings only if directed by a support staff or development team member. And once your issue has been resolved, we recommend resetting it to the default values.

We added diagnostic logging to RPM in 2014. We had several goals in mind:

  1. turn logging on and off for specific parts of RPM
  2. produce a more detailed log than the event log or message log

When we start the program, we erase empty log files and ensure that there are no more than seven diagnostic log files for this program. 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 don't run the codes for months.

Diagnostic logging exists because we needed to find ways to document what specific parts of RPM were doing at a given time.

By contrast, the message log is 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 a fault but is more useful for what it does say and what should be there but isn't.

What we do with the diagnostic log

Typically, RPM and other programs we distribute create a diagnostic log each time they run. By default, we configure the log to produce enough information that our technical staff can verify basic functioning.

To diagnose a problem you may be having, the technical staff may ask you to configure your diagnostic logging to track more settings. How to do that is explained below.

Usually, you would make those changes, restart the RPM service, reproduce the problem (or wait for the problem to happen again), then stop the service and send us the logs via email.

Once we (together) resolve the issue and you're back to standard processing, you should first clear the diagnostic log settings, except the defaults. We'll show you how to do that.

There's not a good reason to keep the settings on "just in case" if the problem is fixed. It just makes processing take longer and consumes a lot more of your disk space.

Note of warning

If you turn on every diagnostic log setting, we can almost guarantee that RPM will run very slowly, or not at all. Please do not do this.

How to configure the diagnostic log

In the user interface, go to the Log menu. Select "Diagnostic Logging" as shown in the image here:

UI log menu for diagnostic logging

Next, you should see the Diagnostic Logging form for the RPM program, as shown here:

Diagnostic Logging form

Note that the four settings at the top are selected. These are the default settings. We'll come back to those later when it's time to reset.

Please note that some settings on this form will slow RPM down severely, so please don't experiment.

At the bottom of the form, note that it says "Program:" with RpmSrv as the selection. You can use this same form to change the diagnostic log settings of other programs distributed with RPM.

Click the program list to see the following:

Program List in Diagnostic Logging form

The program list shows RpmSrv as the current selection. You can also configure the settings for the QueueFolders program and the two programs we use to interface with the Firebird database, dbpipe and dbshm.

Let's say you selected dbshm. You would get something like the following:

Diagnostic Logging form for dbshm

The form shows the diagnostic log settings for the dbshm program. We don't expect you to look at this form or change anything. For my purposes as a developer, I usually have the "dbshm" setting selected, but that is because it makes sense for my job. It probably does not matter for your environment.

Once you have finished, click the OK button to save this configuration.

After this, you may need to restart the service. RPM will receive a notification that the diagnostic log settings have been updated. Some parts of RPM run from start to finish and don't process the change in diagnostic log settings until the program restarts.

What to do with the log when you have one

For the sake of this explanation, I've gone to my RPM install folder, "C:\Program Files\Brooks Internet Software\RPM" and did a directory command for "rpm*log"

These are my results:

 Directory of C:\Program Files\Brooks Internet Software\RPM

04/28/2020  04:27 PM            16,279 rpmsrv-20200428-161336.log
04/28/2020  04:27 PM            16,278 rpmsrv-20200428-162706.log
04/29/2020  07:13 AM            16,320 rpmsrv-20200428-162932.log
04/29/2020  07:35 AM            16,320 rpmsrv-20200429-071356.log
04/29/2020  09:14 AM            16,319 rpmsrv-20200429-091303.log
04/29/2020  02:12 PM       281,190,404 rpmsrv-20200429-091805.log
04/29/2020  03:20 PM            21,423 rpmsrv-20200429-151936.log
               7 File(s)    281,293,343 bytes
               0 Dir(s)  234,191,331,328 bytes free

Note that I did an extensive experiment earlier this week. The files with a size of 16K are typical for an RPM diagnostic log file with only the defaults set. 

Usually, if you have selected some diagnostic log settings and run RPM until you get the desired results, you'll have a large file. These are text files, and they compress very nicely with a file compression utility such as zip or 7z.

Email one or more of these log files to our technical support staff.

How to get the log back to normal (minimal logging)

  1. In the user interface, go to Log / Diagnostic Logging
  2. Make sure the top 4 settings are selected
  3. Make sure all the other settings are off; scroll down to check.
  4. Click OK to activate these settings and to store them.

What are the default settings in the log

These are the default settings:

  • App-start, App-stop, NTService, RpmSrv

Note that these used to be lowercase. That changed in one of our recent updates to diagnostic logging to make it easier for customers to track and for us when we connect to your system.

It's helpful to us to have these settings on. The log file RPM creates is around 16K bytes, which by modern standards, is tiny.

In the dbshm and dbpipe configurations, I have "dbshm" and "dbpipe" selected, respectively. We do not expect you to do that.