libdali  1.6
 All Classes Files Functions Variables Typedefs Macros Pages
Functions | Variables
logging.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include "libdali.h"

Functions

void dl_loginit_main (DLLog *logp, int verbosity, void(*log_print)(char *), const char *logprefix, void(*diag_print)(char *), const char *errprefix)
 Initialize the logging system. More...
 
int dl_log_main (DLLog *logp, int level, int verb, va_list *varlist)
 Primary log message processing routine. More...
 
void dl_loginit (int verbosity, void(*log_print)(char *), const char *logprefix, void(*diag_print)(char *), const char *errprefix)
 Initialize global logging system parameters. More...
 
void dl_loginit_r (DLCP *dlconn, int verbosity, void(*log_print)(char *), const char *logprefix, void(*diag_print)(char *), const char *errprefix)
 Initialize logging parameters specific to a DLCP. More...
 
DLLogdl_loginit_rl (DLLog *log, int verbosity, void(*log_print)(char *), const char *logprefix, void(*diag_print)(char *), const char *errprefix)
 Initialize logging parameters for a specific DLLog. More...
 
int dl_log (int level, int verb,...)
 Log a message using the global logging parameters. More...
 
int dl_log_r (const DLCP *dlconn, int level, int verb,...)
 Log a message using the log parameters from a DLCP. More...
 
int dl_log_rl (DLLog *log, int level, int verb,...)
 Log a message using the log parameters from a DLCP. More...
 

Variables

DLLog gDLLog = {NULL, NULL, NULL, NULL, 0}
 

Detailed Description

Log handling routines for libdali.

These logging routines are used throughout the library and allow all log, diagnostic and error message output to be redirected or otherwise fine tuned.

The most important routines for general library use are dl_loginit() and dl_log().

Author
Chad Trabant, IRIS Data Management Center

modified: 2008.193

Function Documentation

int dl_log ( int  level,
int  verb,
  ... 
)

Log a message using the global logging parameters.

A wrapper to dl_log_main() that uses the global logging parameters.

Parameters
levelLevel at which to log the message (1, 2 or 3)
verbVerbosity threshold at which to log the message
...Message format and optional arguments in printf style
Returns
See dl_log_main() description for return values.
int dl_log_main ( DLLog logp,
int  level,
int  verb,
va_list *  varlist 
)

Primary log message processing routine.

Prinmary logging/printing routine.

This routine acts as a central message facility for the all of the libdali functions.

The function uses logging parameters specified in the supplied DLLog.

This function expects 3+ arguments, message level, verbosity level, fprintf format, and fprintf arguments. If the verbosity level is less than or equal to the set verbosity (see dl_loginit_main()), the fprintf format and arguments will be printed at the appropriate level.

Three levels are recognized: 0 : Normal log messages, printed using log_print with logprefix 1 : Diagnostic messages, printed using diag_print with logprefix 2+ : Error messagess, printed using diag_print with errprefix

This function builds the log/error message and passes to it as a string (char *) to the functions defined with dl_loginit() or dl_loginit_r(). If the log/error printing functions have not been defined messages will be printed with fprintf, log messages to stdout and error messages to stderr.

If the log/error prefix's have been set with dl_loginit() or dl_loginit_r() they will be pre-pended to the message.

All messages will be truncated to the MAX_LOG_MSG_LENGTH, this includes any set prefix.

Parameters
logpDLLog logging paramters
levelLevel at which to log the message (1, 2 or 3)
verbVerbosity threshold at which to log the message
varlistMessage format and optional arguments in printf style
Returns
The number of characters formatted on success, and a a negative value on error.
int dl_log_r ( const DLCP dlconn,
int  level,
int  verb,
  ... 
)

Log a message using the log parameters from a DLCP.

A wrapper to dl_log_main() that uses the logging parameters in a supplied DLCP. If the supplied pointer is NULL the global logging parameters will be used.

Parameters
dlconnDataLink Connection Parameters with associated logging paramters
levelLevel at which to log the message (1, 2 or 3)
verbVerbosity threshold at which to log the message
...Message format and optional arguments in printf style
Returns
See dl_log_main() description for return values.
int dl_log_rl ( DLLog log,
int  level,
int  verb,
  ... 
)

Log a message using the log parameters from a DLCP.

A wrapper to dl_log_main() that uses the logging parameters in a supplied DLLog. If the supplied pointer is NULL the global logging parameters will be used.

Parameters
logDLLog logging paramters
levelLevel at which to log the message (1, 2 or 3)
verbVerbosity threshold at which to log the message
...Message format and optional arguments in printf style
Returns
See dl_log_main() description for return values.
void dl_loginit ( int  verbosity,
void(*)(char *)  log_print,
const char *  logprefix,
void(*)(char *)  diag_print,
const char *  errprefix 
)

Initialize global logging system parameters.

Initialize the global logging parameters.

See dl_loginit_main() description for usage.

void dl_loginit_main ( DLLog logp,
int  verbosity,
void(*)(char *)  log_print,
const char *  logprefix,
void(*)(char *)  diag_print,
const char *  errprefix 
)

Initialize the logging system.

Initialize the logging subsystem. The logging paramters determine how dl_log() and dl_log_r() emit messages.

This function modifies the logging parameters in the passed DLLog.

Any log/error printing functions indicated must accept a single argument, namely a string (char *). The dl_log() and dl_log_r() functions format each message and then pass the result on to the log/error printing functions.

If the log/error prefixes have been set they will be pre-pended to the message.

Use NULL for the function pointers or the prefixes if they should not be changed from previously set or default values. The default behavior of the logging subsystem is given in the example below.

Example: dl_loginit_main (0, (void*)&printf, NULL, (void*)&printf, "error: ");

Parameters
logpThe DLLog parameters to change
verbosityThe verbosity level
log_printPointer to a log message printing function
logprefixPrefix to add to each log & diganostic message
diag_printPointer to a diagnostic & error message printing function
errprefixPrefix to add to each error message
void dl_loginit_r ( DLCP dlconn,
int  verbosity,
void(*)(char *)  log_print,
const char *  logprefix,
void(*)(char *)  diag_print,
const char *  errprefix 
)

Initialize logging parameters specific to a DLCP.

Initialize DLCP specific logging parameters. If the logging parameters have not been initialized (dlconn->log == NULL) new parameter space will be allocated.

See dl_loginit_main() description for usage.

DLLog* dl_loginit_rl ( DLLog log,
int  verbosity,
void(*)(char *)  log_print,
const char *  logprefix,
void(*)(char *)  diag_print,
const char *  errprefix 
)

Initialize logging parameters for a specific DLLog.

Initialize DLLog specific logging parameters. If the logging parameters have not been initialized (log == NULL) new parameter space will be allocated.

See dl_loginit_main() description for usage.

Returns
A pointer to the created/re-initialized DLLog struct.

Variable Documentation

DLLog gDLLog = {NULL, NULL, NULL, NULL, 0}

Initial global logging parameters