The following example illustrates a typical use of the debug plugin. In this case, we configure a plugin instance to output log messages preceded by the process name and pid to a file named gridftp.log.
int main(int argc, char *argv[])
{
globus_ftp_client_plugin_t restart_plugin;
globus_ftp_client_handleattr_t handleattr;
globus_ftp_client_handle_t handle;
FILE * log;
char text[256];
/* Activate the necessary modules */
globus_module_activate(GLOBUS_FTP_CLIENT_MODULE);
globus_module_activate(GLOBUS_FTP_CLIENT_DEBUG_PLUGIN_MODULE);
/* Configure plugin to show custom text, and send plugin data to
* a custom log file
*/
log = fopen("gridftp.log", "a");
sprintf(text, "%s:%ld", argv[0], (long) getpid());
globus_ftp_client_debug_plugin_init(&debug_plugin, log, text);
/* Set up our client handle to use the new plugin */
globus_ftp_client_handleattr_init(&handleattr);
globus_ftp_client_handleattr_add_plugin(&handleattr, &debug_plugin);
globus_ftp_client_handle_init(&handle, &handleattr);
/* As this get is processed, data will be appended to our gridftp.log
* file
*/
globus_ftp_client_get(&handle,
"ftp://ftp.globus.org/pub/globus/README",
GLOBUS_NULL,
GLOBUS_NULL,
callback_fn,
GLOBUS_NULL);
}