errlog.h
Functions for interacting with the errlog task.
This file contains functions for passing error messages with varying severity, registering and un-registering listeners and modifying the log buffer size and max message size.
Some of these functions are similar to the standard C library functions printf and vprintf. For details on the arguments and return codes it is useful to consult any book that describes the standard C library such as The C Programming Language ANSI C Edition
by Kernighan and Ritchie.
Defines
-
errMessage(S, PM)
errMessage is a macro so it can get the file and line number. It prints the message, the status symbol and string values, and the name of the task which invoked errMessage. It also prints the name of the source file and the line number from which the call was issued.
The message to print should not include a newline as one is added implicitly.
The status code used for the 1st argument is:
0: Find latest vxWorks or Unix error (errno value).
-1: Don’t report status.
Other: Use this status code and lookup the string value
- Parameters:
S – Status code
PM – The message to print
-
epicsPrintf
epicsPrintf is an old name for errlog routines
-
epicsVprintf
epicsVprintf is an old name for errlog routines
-
ANSI_ESC_RED
-
ANSI_ESC_GREEN
-
ANSI_ESC_YELLOW
-
ANSI_ESC_BLUE
-
ANSI_ESC_MAGENTA
-
ANSI_ESC_CYAN
-
ANSI_ESC_BOLD
-
ANSI_ESC_UNDERLINE
-
ANSI_ESC_RESET
-
ANSI_RED(STR)
-
ANSI_GREEN(STR)
-
ANSI_YELLOW(STR)
-
ANSI_BLUE(STR)
-
ANSI_MAGENTA(STR)
-
ANSI_CYAN(STR)
-
ANSI_BOLD(STR)
-
ANSI_UNDERLINE(STR)
-
ERL_ERROR
-
ERL_WARNING
Typedefs
-
typedef void (*errlogListener)(void *pPrivate, const char *message)
errlogListener function type.
This is used when adding or removing log listeners in errlogAddListener and errlogRemoveListeners.
Enums
Functions
-
int errlogPrintf(const char *pformat, ...)
errlogPrintf is like the printf function provided by the standard C library, except that the output is sent to the errlog task. Unless configured not to, the output will appear on the console as well.
-
int errlogVprintf(const char *pformat, va_list pvar)
errlogVprintf is like the vprintf function provided by the standard C library, except that the output is sent to the errlog task. Unless configured not to, the output will appear on the console as well.
-
int errlogSevPrintf(const errlogSevEnum severity, const char *pformat, ...)
This function is like errlogPrintf except that it adds the severity to the beginning of the message in the form
sevr=<value>
where value is one of the enumerated severities in errlogSevEnum. Also the message is suppressed if severity is less than the current severity to suppress.- Parameters:
severity – One of the severity enums from errlogSevEnum
pformat – The message to log or print
- Returns:
int Consult printf documentation in C standard library
-
int errlogSevVprintf(const errlogSevEnum severity, const char *pformat, va_list pvar)
This function is like errlogVprintf except that it adds the severity to the beginning of the message in the form
sevr=<value>
where value is one of the enumerated severities in errlogSevEnum. Also the message is suppressed if severity is less than the current severity to suppress. If epicsThreadIsOkToBlock is true, which is true during iocInit, errlogSevVprintf does NOT send output to the errlog task.- Parameters:
severity – One of the severity enums from errlogSevEnum
pformat – The message to log or print
pvar – va_list
- Returns:
int Consult printf documentation in C standard library
-
int errlogMessage(const char *message)
Sends message to the errlog task.
- Parameters:
message – The message to send
-
const char *errlogGetSevEnumString(errlogSevEnum severity)
Gets the string value of severity.
- Parameters:
severity – The severity from errlogSevEnum
- Returns:
The string value
-
void errlogSetSevToLog(errlogSevEnum severity)
Sets the severity to log
- Parameters:
severity – The severity from errlogSevEnum
-
errlogSevEnum errlogGetSevToLog(void)
Gets the current severity to log
- Returns:
-
void errlogAddListener(errlogListener listener, void *pPrivate)
Any code can receive errlog message. This function will add a listener callback.
- Parameters:
listener – Function pointer of type errlogListener
pPrivate – This will be passed as the first argument of listener()
-
int errlogRemoveListeners(errlogListener listener, void *pPrivate)
This function will remove a listener callback.
- Since
7.0.8 Safe to call from a listener callback.
- Parameters:
listener – Function pointer of type errlogListener
pPrivate – This will be passed as the first argument of listener()
-
int eltc(int yesno)
Normally the errlog system displays all messages on the console. During error message storms this function can be used to suppress console messages. A argument of 0 suppresses the messages, any other value lets messages go to the console.
- Parameters:
yesno – (0=No, 1=Yes)
- Returns:
0
-
int errlogSetConsole(FILE *stream)
Sets a new stream to write the messages to
- Parameters:
stream – Pointer to file handle
- Returns:
0
-
int errlogInit(int bufsize)
Can be used to initialize the error logging system with a larger buffer. The default buffer size is 1280 bytes.
- Parameters:
bufsize – The desired buffer size
-
int errlogInit2(int bufsize, int maxMsgSize)
errlogInit2 can be used to initialize the error logging system with a larger buffer and maximum message size. The default buffer size is 1280 bytes, and the default maximum message size is 256.
- Parameters:
bufsize – The desired buffer size
maxMsgSize – The desired max message size
-
void errlogFlush(void)
Wakes up the errlog task and then waits until all messages are flushed from the queue.
-
void errPrintf(long status, const char *pFileName, int lineno, const char *pformat, ...)
Routine errPrintf is normally called as follows:
errPrintf(status, __FILE__, __LINE__, "<fmt>", ...);
Where status is defined as:
0: Find latest vxWorks or Unix error.
-1: Don’t report status.
Other: Use this status code and lookup the string value
The remaining arguments are just like the arguments to the C printf routine. errVerbose determines if the filename and line number are shown.
- Parameters:
status – See above
pFileName – As shown or NULL if the file name and line number should not be printed.
lineno – As shown
pformat – The message to log or print
-
int errlogPrintfNoConsole(const char *pformat, ...)
-
int errlogVprintfNoConsole(const char *pformat, va_list pvar)
-
void errSymLookup(long status, char *pBuf, size_t bufLength)
Lookup the status code and return the string value in pBuf
- Parameters:
status – The status code to lookup
pBuf – The char buffer to write the string value into
bufLength – The max size of pBuf