The logging manager library module has the file name logman.c. This module manages messages and allows the messages to be dynamically sent to either a local log file (using the personal logging API) or the system logger.
This module uses the personal logging API to send messages to a local log and the system logger API to send messages to the system logger.
In order to send messages to the system logger, the application must be linked with:
- the low level IPC API's - the socloc API's - the system logging API's
Refer to the module list below (module dependencies) for a list of each required module.
This module can be compiled with or without system logger support. The support for the system logger is controlled through the define:
HAS_SYSLOG
In the Future Lab scripts or batch files, this define is turned on by including the environment variable HASYSLOG (using the Linux OS, as an example, this is defined in the script include.linux).
This module contains the following global data:
Here is a list of functions in the logging manager library module:
The following modules are required along with this module:
This module requires the header files:
Prototype : int logman_start(char *dest, char *apname) Parameters : Name : dest Description: message destination Name : apname Description: application name Returns : zero upon success, one (personal logging) or a sys_log code
This function will start logging through the log manager by either starting to log using a local log file or the system log interface depending on the contents of the message destination. The application name parameter is only required (always) for the system logger. If logging has been successfully started with a message destination at least once, you are allowed to pass a NULL string for the message destination which indicates to re-start the same destination. This function returns a system log code if the system log was requested or zero upon success, one upon failure when the system log was not requested.
Prototype : void logman_end(void)
This function will stop the log manager and all logging.
Prototype : int logman(char *fmt,...) Parameters : Name : fmt Description: message format
This function will output a message through the log manager to the current destination. The message is only output if the log manager is active (by calling the function logman_start). This function takes a variable number of arguments in the printf style.
Prototype : int logman_nf(char *mes) Parameters : Name : mes Description: message text
This function will output a pre-formatted message through the log manager to the current destination. The message is only output if the log manager is active (by calling the function logman_start.
Prototype : int logman_is_active(void) Returns : TRUE if active, FALSE otherwise
This function return the status of the log manager.
Prototype : int logman_get_name(char *name) Parameters : Name : name Description: returned log name/destination Returns : TRUE upon succes, FALSE otherwise
This function will obtain and return the current log name or destination. Function returns the log name or destination in the returned log name/destination (which must already be allocated to sufficient size by the caller) along with TRUE upon success.
Prototype : void logman_console(int flag) Parameters : Name : flag Description: console output flag
This function will set whether logging output will be sent to the console/screen. Output will be turned off if the console output flag is zero. Any other value will cause console output to be turned on.
Prototype : int logman_get_console(void) Returns : TRUE if console output is on, FALSE otherwise
This function will return the current log console output flag.
Prototype : static int logman_ipc_socloc_init(void) Returns : TRUE upon success, FALSE otherwise
This private function will initialize socket communication, form a connection to a socloc server and update the socloc config list.