Defines | Typedefs | Functions

libvmtools/vmtoolsLog.c File Reference

#include "vmtoolsInt.h"
#include <stdio.h>
#include <stdlib.h>
#include <glib/gstdio.h>
#include <unistd.h>
#include <sys/resource.h>
#include <sys/time.h>
#include "glibUtils.h"
#include "log.h"
#include "str.h"
#include "system.h"

Defines

#define LOGGING_GROUP   "logging"
#define MAX_DOMAIN_LEN   64
#define DEFAULT_HANDLER   "syslog"
#define SAFE_HANDLER   "std"
#define IS_FATAL(level)   ((level) & G_LOG_FLAG_FATAL)
#define SHOULD_LOG(level, data)
#define CLEAR_LOG_HANDLER(handler)

Typedefs

typedef struct LogHandler LogHandler

Functions

gint VMToolsAsprintf (gchar **string, gchar const *format,...)
void VMTools_ConfigLogging (const gchar *defaultDomain, GKeyFile *cfg, gboolean force, gboolean reset)
void Debug (const char *fmt,...)
void Log (const char *fmt,...)
void LogV (uint32 routing, const char *fmt, va_list args)
void Panic (const char *fmt,...)
void Warning (const char *fmt,...)

Detailed Description

Defines a logging infrastructure for the vmtools library based on glib's logging facilities. Wrap the commonly used logging functions (Log/Warning/Debug), and provides configurability for where logs should go to.

To choose the logging domain for your source file, define G_LOG_DOMAIN before including glib.h.


Define Documentation

#define CLEAR_LOG_HANDLER (   handler  ) 
Value:
do {            \
   if ((handler) != NULL) {                        \
      if (handler->logger != NULL) {               \
         handler->logger->dtor(handler->logger);   \
      }                                            \
      g_free((handler)->domain);                   \
      g_free((handler)->type);                     \
      g_free(handler);                             \
   }                                               \
} while (0)

Clean up the contents of a log handler.

#define DEFAULT_HANDLER   "syslog"

The default handler to use if none is specified by the config data.

#define IS_FATAL (   level  )     ((level) & G_LOG_FLAG_FATAL)

Tells whether the given log level is a fatal error.

#define SAFE_HANDLER   "std"

The "failsafe" handler.

#define SHOULD_LOG (   level,
  data 
)
Value:
(IS_FATAL(level) || \
                                 (gLogEnabled && ((data)->mask & (level))))

Tells whether a message should be logged. All fatal messages are logged, regardless of what the configuration says. Otherwise, the log domain's configuration is respected.


Function Documentation

void Debug ( const char *  fmt,
  ... 
)

Logs a message using the G_LOG_LEVEL_DEBUG level.

Parameters:
[in] fmt Log message format.
void Log ( const char *  fmt,
  ... 
)

Logs a message using the G_LOG_LEVEL_INFO level.

Parameters:
[in] fmt Log message format.
void LogV ( uint32  routing,
const char *  fmt,
va_list  args 
)

Logs a message with the given log level.

Translates lib/log levels into glib levels, and sends the message to the log implementation.

Parameters:
[in] level Log level.
[in] fmt Log message format.
[in] args Log message arguments.
void Panic ( const char *  fmt,
  ... 
)

Logs a message using the G_LOG_LEVEL_ERROR level. In the default configuration, this will cause the application to terminate and, if enabled, to dump core.

Parameters:
[in] fmt Log message format.
gint VMToolsAsprintf ( gchar **  string,
gchar const *  format,
  ... 
)

glib-based version of Str_Asprintf().

Parameters:
[out] string Where to store the result.
[in] format String format.
[in] ... String arguments.
Returns:
Number of bytes printed.
void Warning ( const char *  fmt,
  ... 
)

Logs a message using the G_LOG_LEVEL_WARNING level.

Parameters:
[in] fmt Log message format.