Gearman Developer Documentation

libgearman-server/log.c
Go to the documentation of this file.
00001 /* Gearman server and library
00002  * Copyright (C) 2008-2009 Brian Aker, Eric Day
00003  * All rights reserved.
00004  *
00005  * Use and distribution licensed under the BSD license.  See
00006  * the COPYING file in the parent directory for full text.
00007  */
00008 
00014 #include "common.h"
00015 
00016 
00017 void gearmand_log(gearmand_st *state, gearman_verbose_t verbose,
00018                  const char *format, va_list args)
00019 {
00020   char log_buffer[GEARMAN_MAX_ERROR_SIZE];
00021 
00022   if (state->log_fn == NULL)
00023   {
00024     printf("%5s: ", gearman_verbose_name(verbose));
00025     vprintf(format, args);
00026     printf("\n");
00027   }
00028   else
00029   {
00030     vsnprintf(log_buffer, GEARMAN_MAX_ERROR_SIZE, format, args);
00031     state->log_fn(log_buffer, verbose, (void *)state->log_context);
00032   }
00033 }
00034 
00035 
00036 void gearmand_log_fatal(gearmand_st *gearman, const char *format, ...)
00037 {
00038   va_list args;
00039 
00040   if (gearman->verbose >= GEARMAN_VERBOSE_FATAL)
00041   {
00042     va_start(args, format);
00043     gearmand_log(gearman, GEARMAN_VERBOSE_FATAL, format, args);
00044     va_end(args);
00045   }
00046 }
00047 
00048 void gearmand_log_error(gearmand_st *gearman, const char *format, ...)
00049 {
00050   va_list args;
00051 
00052   if (gearman->verbose >= GEARMAN_VERBOSE_ERROR)
00053   {
00054     va_start(args, format);
00055     gearmand_log(gearman, GEARMAN_VERBOSE_ERROR, format, args);
00056     va_end(args);
00057   }
00058 }
00059 
00060 void gearmand_log_info(gearmand_st *gearman, const char *format, ...)
00061 {
00062   va_list args;
00063 
00064   if (gearman->verbose >= GEARMAN_VERBOSE_INFO)
00065   {
00066     va_start(args, format);
00067     gearmand_log(gearman, GEARMAN_VERBOSE_INFO, format, args);
00068     va_end(args);
00069   }
00070 }
00071 
00072 void gearmand_log_debug(gearmand_st *gearman, const char *format, ...)
00073 {
00074   va_list args;
00075 
00076   if (gearman->verbose >= GEARMAN_VERBOSE_DEBUG)
00077   {
00078     va_start(args, format);
00079     gearmand_log(gearman, GEARMAN_VERBOSE_DEBUG, format, args);
00080     va_end(args);
00081   }
00082 }
00083 
00084 void gearmand_log_crazy(gearmand_st *gearman, const char *format, ...)
00085 {
00086   va_list args;
00087 
00088   if (gearman->verbose >= GEARMAN_VERBOSE_CRAZY)
00089   {
00090     va_start(args, format);
00091     gearmand_log(gearman, GEARMAN_VERBOSE_CRAZY, format, args);
00092     va_end(args);
00093   }
00094 }
00095 
00096 void gearman_conf_error_set(gearman_conf_st *conf, const char *msg, const char *format, ...)
00097 {
00098   va_list args;
00099   char *ptr;
00100   size_t length= strlen(msg);
00101 
00102   ptr= memcpy(conf->last_error, msg, length);
00103   ptr+= length;
00104 
00105   va_start(args, format);
00106   vsnprintf(ptr, GEARMAN_MAX_ERROR_SIZE- length, format, args);
00107   va_end(args);
00108 }
00109 
00110