open-vm-tools 10.3.0
Macros | Typedefs | Functions
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"
#include "vmware/tools/log.h"
#include "err.h"

Macros

#define LOGGING_GROUP   "logging"
 
#define MAX_DOMAIN_LEN   (64)
 
#define DEFAULT_MAX_CACHE_ENTRIES   (4*1024)
 
#define DEFAULT_HANDLER   "file+"
 
#define DEFAULT_LOGFILE_NAME_PREFIX   "/var/log/vmware"
 
#define SAFE_HANDLER   "std"
 
#define STD_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
 
typedef struct LogEntry LogEntry
 

Functions

gint VMToolsAsprintf (gchar **string, gchar const *format,...)
 
gchar * VMTools_GetTimeAsString (void)
 
void VMTools_ConfigLogToStdio (const gchar *domain)
 
void VMTools_ConfigLogging (const gchar *defaultDomain, GKeyFile *cfg, gboolean force, gboolean reset)
 
void VMTools_AcquireLogStateLock (void)
 
void VMTools_ReleaseLogStateLock (void)
 
void VMTools_StopLogging (void)
 
void VMTools_RestartLogging (void)
 
void VMTools_SuspendLogIO ()
 
void VMTools_ResumeLogIO ()
 
void VMTools_SetGuestSDKMode (void)
 
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,...)
 
gboolean VMTools_ChangeLogFilePath (const gchar *delimiter, const gchar *appendString, const gchar *domain, GKeyFile *conf)
 

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.

All fatal error messages will go to the 'syslog' handler no matter what handler has been configured.

Macro Definition 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)->confData); \
g_free(handler); \
} \
} while (0)

Clean up the contents of a log handler.

#define DEFAULT_HANDLER   "file+"

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

#define DEFAULT_LOGFILE_NAME_PREFIX   "/var/log/vmware"

The default logfile location.

#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))))
#define IS_FATAL(level)
Definition: vmtoolsLog.c:93

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.

Typedef Documentation

typedef struct LogEntry LogEntry

Structure for caching a log message

Function Documentation

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

Logs a message using the G_LOG_LEVEL_DEBUG level.

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

Logs a message using the G_LOG_LEVEL_INFO level.

Parameters
[in]fmtLog 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]levelLog level.
[in]fmtLog message format.
[in]argsLog 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]fmtLog message format.
gint VMToolsAsprintf ( gchar **  string,
gchar const *  format,
  ... 
)

glib-based version of Str_Asprintf().

Parameters
[out]stringWhere to store the result.
[in]formatString 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]fmtLog message format.