X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Futils%2Fmono-logger-internals.h;h=4a83afd5228feebe46deafcc847a97dd234a5de6;hb=HEAD;hp=f32a25e306d75f5a64ddd70ef84aaea354a290e2;hpb=41b65b08a5f70148f625e83f4b44b2a6514e9a74;p=mono.git diff --git a/mono/utils/mono-logger-internals.h b/mono/utils/mono-logger-internals.h index f32a25e306d..4a83afd5228 100644 --- a/mono/utils/mono-logger-internals.h +++ b/mono/utils/mono-logger-internals.h @@ -1,7 +1,12 @@ +/** + * \file + */ + #ifndef __MONO_LOGGER_INTERNAL_H__ #define __MONO_LOGGER_INTERNAL_H__ #include +#include #include "mono-logger.h" G_BEGIN_DECLS @@ -31,8 +36,8 @@ typedef enum { MONO_TRACE_W32HANDLE } MonoTraceMask; -extern GLogLevelFlags mono_internal_current_level; -extern MonoTraceMask mono_internal_current_mask; +MONO_API extern GLogLevelFlags mono_internal_current_level; +MONO_API extern MonoTraceMask mono_internal_current_mask; void mono_trace_init (void); @@ -40,7 +45,7 @@ mono_trace_init (void); void mono_trace_cleanup (void); -void +MONO_API void mono_tracev_inner (GLogLevelFlags level, MonoTraceMask mask, const char *format, va_list args); void @@ -74,8 +79,8 @@ mono_tracev (GLogLevelFlags level, MonoTraceMask mask, const char *format, va_li * Traces a new message, depending on the current logging level * and trace mask. */ -G_GNUC_UNUSED static void -mono_trace (GLogLevelFlags level, MonoTraceMask mask, const char *format, ...) +G_GNUC_UNUSED MONO_ATTR_FORMAT_PRINTF(3,4) static void +mono_trace (GLogLevelFlags level, MonoTraceMask mask, const char *format, ...) { if(G_UNLIKELY (level <= mono_internal_current_level && mask & mono_internal_current_mask)) { va_list args; @@ -129,11 +134,13 @@ mono_trace_message(MonoTraceMask mask, const char *format, ...) #endif /* !__GNUC__ */ -#if defined (PLATFORM_ANDROID) || (defined (TARGET_IOS) && defined (TARGET_IOS)) +#if defined (HOST_ANDROID) || (defined (TARGET_IOS) && defined (TARGET_IOS)) #define mono_gc_printf(gc_log_file, format, ...) g_log ("mono-gc", G_LOG_LEVEL_MESSAGE, format, ##__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_profiler_printf(format, ...) g_log ("mono-prof", G_LOG_LEVEL_MESSAGE, format "\n", ##__VA_ARGS__) +#define mono_profiler_printf_err(format, ...) g_log ("mono-prof", G_LOG_LEVEL_CRITICAL, format "\n", ##__VA_ARGS__) #define mono_runtime_stdout_fflush() do { } while (0) #else @@ -145,10 +152,50 @@ mono_trace_message(MonoTraceMask mask, const char *format, ...) #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_profiler_printf(format, ...) fprintf (stdout, format "\n", ##__VA_ARGS__) +#define mono_profiler_printf_err(format, ...) fprintf (stderr, format "\n", ##__VA_ARGS__) #define mono_runtime_stdout_fflush() do { fflush (stdout); } while (0) #endif +/* Internal logging API */ +typedef void (*MonoLoggerOpen) (const char *, void *); +typedef void (*MonoLoggerWrite) (const char *, GLogLevelFlags, mono_bool, const char *); +typedef void (*MonoLoggerClose) (void); + +typedef struct _MonoLogCallParm_ { + MonoLoggerOpen opener; /* Routine to open logging */ + MonoLoggerWrite writer; /* Routine to write log data */ + MonoLoggerClose closer; /* Routine to close logging */ + char *dest; /* Log destination */ + void *user_data; /* User data from legacy handler */ + mono_bool header; /* Whether we want pid/time/date in log message */ +} MonoLogCallParm; + +void mono_trace_set_log_handler_internal (MonoLogCallParm *callback, void *user_data); +void mono_trace_set_logdest_string (const char *value); +void mono_trace_set_logheader_string (const char *value); + +void mono_log_open_syslog (const char *, void *); +void mono_log_write_syslog (const char *, GLogLevelFlags, mono_bool, const char *); +void mono_log_close_syslog (void); + +void mono_log_open_logfile (const char *, void *); +void mono_log_write_logfile (const char *, GLogLevelFlags, mono_bool, const char *); +void mono_log_close_logfile (void); + +#if HOST_ANDROID +void mono_log_open_logcat (const char *path, void *userData); +void mono_log_write_logcat (const char *log_domain, GLogLevelFlags level, mono_bool hdr, const char *message); +void mono_log_close_logcat (void); +#endif + +#if defined(HOST_IOS) +void mono_log_open_asl (const char *path, void *userData); +void mono_log_write_asl (const char *log_domain, GLogLevelFlags level, mono_bool hdr, const char *message); +void mono_log_close_asl (void); + +#endif G_END_DECLS