Error Logging System

The error logging system provides:


A note from Marty

Date: Tue, 05 Oct 2004
From: Marty Kraimer 
Subject: Re: Long Error Message

errlog allows a maximum message size of 256 characters.
It allows an extra 256 characters in an internal buffer.
Until extra is > 256 there is no buffer overflow.

Thus the following error message (at iocInit time) does not actually cause a problem.
>errlog: A message overran buffer by 3. This is VERY bad

In 3.14 errlog has been modified so that a buffer overflow can not occur.

Client Routines

Basic Routines Status Routines
  Obsolete Routines Add and Remove Log Listener target console routines eltc determines if errlog task writes message to the console. If error messages storms are occuring the command can be used to suppress the messages. A argument of 0 suppresses the messages and any other value lets the message go to the console.

errlogInit can be used to initialize the error logging system with a larger buffer. The default is 1280 bytes. An extra MAX_MESSAGE_SIZE (currently 256) bytes are allocated but never used. This is a small extra protection against long error messages.


This consists of two modules: iocLogServer and iocLogClient. The client code runs on each ioc and listens for the messages generated by the errlog system. It also reports the messages from  vxWorks logMsg.


This runs on a host. It receives messages for all enabled iocLogClients in the local area network. The messages are written to a file. Epics base provides a startup file "base/src/util/rc2.logServer", which is a shell script to start the server. Consult this script for details.


This runs on each ioc. It is started by default when iocInit runs. The global variable iocLogDisable can be used to enable/disable the messages from being sent to the server. Setting this variable to (0,1) (enables,disables) the messages generation. If iocLogDisable is set to 1 immediately after iocCore is loaded then iocLogClient will not even initialize itself.


SLAC Last modified: 12-Aug- 2000 by Ron MacKenzie