1 #ifndef __MONO_LOGGER_INTERNAL_H__
2 #define __MONO_LOGGER_INTERNAL_H__
5 #include "mono-logger.h"
10 MONO_TRACE_ASSEMBLY = (1<<0),
11 MONO_TRACE_TYPE = (1<<1),
12 MONO_TRACE_DLLIMPORT = (1<<2),
13 MONO_TRACE_GC = (1<<3),
14 MONO_TRACE_CONFIG = (1<<4),
15 MONO_TRACE_AOT = (1<<5),
16 MONO_TRACE_SECURITY = (1<<6),
17 MONO_TRACE_THREADPOOL = (1<<7),
18 MONO_TRACE_IO_THREADPOOL = (1<<8),
19 MONO_TRACE_ALL = MONO_TRACE_ASSEMBLY |
21 MONO_TRACE_DLLIMPORT |
26 MONO_TRACE_THREADPOOL |
27 MONO_TRACE_IO_THREADPOOL
31 mono_trace_cleanup (void);
34 mono_trace (GLogLevelFlags level, MonoTraceMask mask, const char *format, ...);
37 mono_tracev (GLogLevelFlags level, MonoTraceMask mask, const char *format, va_list args);
40 mono_trace_set_level (GLogLevelFlags level);
43 mono_trace_set_mask (MonoTraceMask mask);
46 mono_trace_push (GLogLevelFlags level, MonoTraceMask mask);
49 mono_trace_pop (void);
52 mono_trace_is_traced (GLogLevelFlags level, MonoTraceMask mask);
54 #ifdef G_HAVE_ISO_VARARGS
55 #define mono_trace_error(...) mono_trace(G_LOG_LEVEL_ERROR, \
57 #define mono_trace_warning(...) mono_trace(G_LOG_LEVEL_WARNING, \
59 #define mono_trace_message(...) mono_trace(G_LOG_LEVEL_MESSAGE, \
61 #elif defined(G_HAVE_GNUC_VARARGS)
62 #define mono_trace_error(format...) mono_trace(G_LOG_LEVEL_ERROR, \
64 #define mono_trace_warning(format...) mono_trace(G_LOG_LEVEL_WARNING, \
66 #define mono_trace_message(format...) mono_trace(G_LOG_LEVEL_MESSAGE, \
68 #else /* no varargs macros */
69 G_GNUC_UNUSED static void
70 mono_trace_error(MonoTraceMask mask, const char *format, ...)
73 va_start (args, format);
74 mono_tracev(G_LOG_LEVEL_ERROR, mask, format, args);
78 G_GNUC_UNUSED static void
79 mono_trace_warning(MonoTraceMask mask, const char *format, ...)
82 va_start (args, format);
83 mono_tracev(G_LOG_LEVEL_WARNING, mask, format, args);
87 G_GNUC_UNUSED static void
88 mono_trace_message(MonoTraceMask mask, const char *format, ...)
91 va_start (args, format);
92 mono_tracev(G_LOG_LEVEL_MESSAGE, mask, format, args);
96 #endif /* !__GNUC__ */
98 #if defined (PLATFORM_ANDROID) || (defined (TARGET_IOS) && defined (TARGET_IOS))
100 #define mono_gc_printf(gc_log_file, format, ...) g_log ("mono-gc", G_LOG_LEVEL_MESSAGE, format, ##__VA_ARGS__)
101 #define mono_runtime_printf(format, ...) g_log ("mono-rt", G_LOG_LEVEL_MESSAGE, format "\n", ##__VA_ARGS__)
102 #define mono_runtime_printf_err(format, ...) g_log ("mono-rt", G_LOG_LEVEL_CRITICAL, format "\n", ##__VA_ARGS__)
103 #define mono_runtime_stdout_fflush() do { } while (0)
107 #define mono_gc_printf(gc_log_file, format, ...) do { \
108 fprintf (gc_log_file, format, ##__VA_ARGS__); \
109 fflush (gc_log_file); \
112 #define mono_runtime_printf(format, ...) fprintf (stdout, format "\n", ##__VA_ARGS__)
113 #define mono_runtime_printf_err(format, ...) fprintf (stderr, format "\n", ##__VA_ARGS__)
114 #define mono_runtime_stdout_fflush() do { fflush (stdout); } while (0)
121 #endif /* __MONO_LOGGER_INTERNAL_H__ */