linux-packaging-mono/mono/utils/mono-logger-internal.h
Jo Shields a575963da9 Imported Upstream version 3.6.0
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
2014-08-13 10:39:27 +01:00

118 lines
3.3 KiB
C

#ifndef __MONO_LOGGER_INTERNAL_H__
#define __MONO_LOGGER_INTERNAL_H__
#include <glib.h>
#include "mono-logger.h"
G_BEGIN_DECLS
typedef enum {
MONO_TRACE_ASSEMBLY = (1<<0),
MONO_TRACE_TYPE = (1<<1),
MONO_TRACE_DLLIMPORT = (1<<2),
MONO_TRACE_GC = (1<<3),
MONO_TRACE_CONFIG = (1<<4),
MONO_TRACE_AOT = (1<<5),
MONO_TRACE_SECURITY = (1<<6),
MONO_TRACE_ALL = MONO_TRACE_ASSEMBLY |
MONO_TRACE_TYPE |
MONO_TRACE_DLLIMPORT |
MONO_TRACE_GC |
MONO_TRACE_CONFIG |
MONO_TRACE_AOT |
MONO_TRACE_SECURITY
} MonoTraceMask;
void
mono_trace_cleanup (void) MONO_INTERNAL;
void
mono_trace (GLogLevelFlags level, MonoTraceMask mask, const char *format, ...) MONO_INTERNAL;
void
mono_tracev (GLogLevelFlags level, MonoTraceMask mask, const char *format, va_list args) MONO_INTERNAL;
void
mono_trace_set_level (GLogLevelFlags level) MONO_INTERNAL;
void
mono_trace_set_mask (MonoTraceMask mask) MONO_INTERNAL;
void
mono_trace_push (GLogLevelFlags level, MonoTraceMask mask) MONO_INTERNAL;
void
mono_trace_pop (void) MONO_INTERNAL;
gboolean
mono_trace_is_traced (GLogLevelFlags level, MonoTraceMask mask) MONO_INTERNAL;
#ifdef G_HAVE_ISO_VARARGS
#define mono_trace_error(...) mono_trace(G_LOG_LEVEL_ERROR, \
__VA_ARGS__)
#define mono_trace_warning(...) mono_trace(G_LOG_LEVEL_WARNING, \
__VA_ARGS__)
#define mono_trace_message(...) mono_trace(G_LOG_LEVEL_MESSAGE, \
__VA_ARGS__)
#elif defined(G_HAVE_GNUC_VARARGS)
#define mono_trace_error(format...) mono_trace(G_LOG_LEVEL_ERROR, \
format)
#define mono_trace_warning(format...) mono_trace(G_LOG_LEVEL_WARNING, \
format)
#define mono_trace_message(format...) mono_trace(G_LOG_LEVEL_MESSAGE, \
format)
#else /* no varargs macros */
G_GNUC_UNUSED static void
mono_trace_error(MonoTraceMask mask, const char *format, ...)
{
va_list args;
va_start (args, format);
mono_tracev(G_LOG_LEVEL_ERROR, mask, format, args);
va_end (args);
}
G_GNUC_UNUSED static void
mono_trace_warning(MonoTraceMask mask, const char *format, ...)
{
va_list args;
va_start (args, format);
mono_tracev(G_LOG_LEVEL_WARNING, mask, format, args);
va_end (args);
}
G_GNUC_UNUSED static void
mono_trace_message(MonoTraceMask mask, const char *format, ...)
{
va_list args;
va_start (args, format);
mono_tracev(G_LOG_LEVEL_MESSAGE, mask, format, args);
va_end (args);
}
#endif /* !__GNUC__ */
#if defined (PLATFORM_ANDROID) || (defined (TARGET_IOS) && defined (TARGET_IOS))
#define mono_gc_printf(gc_log_file, format, ...) g_log ("mono-gc", G_LOG_LEVEL_MESSAGE, format "\n", ##__VA_ARGS__)
#define mono_runtime_printf(format, ...) g_log ("mono-rt", G_LOG_LEVEL_MESSAGE, format "\n", ##__VA_ARGS__)
#define mono_runtime_printf_err(format, ...) g_log ("mono-rt", G_LOG_LEVEL_CRITICAL, format "\n", ##__VA_ARGS__)
#define mono_runtime_stdout_fflush() do { } while (0)
#else
#define mono_gc_printf(gc_log_file, format, ...) do { \
fprintf (gc_log_file, format "\n", ##__VA_ARGS__); \
fflush (gc_log_file); \
} while (0)
#define mono_runtime_printf(format, ...) fprintf (stdout, format "\n", ##__VA_ARGS__)
#define mono_runtime_printf_err(format, ...) fprintf (stderr, format "\n", ##__VA_ARGS__)
#define mono_runtime_stdout_fflush() do { fflush (stdout); } while (0)
#endif
G_END_DECLS
#endif /* __MONO_LOGGER_INTERNAL_H__ */