#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" |
#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. |