+ mono_internal_current_mask = mask;
+}
+
+/**
+ * mono_trace_set_logdest:
+ * \param dest Destination for logging
+ * Sets the current logging destination. This can be a file or, if supported,
+ * syslog.
+ */
+void
+mono_trace_set_logdest_string (const char *dest)
+{
+ MonoLogCallParm logger;
+
+ if(level_stack == NULL)
+ mono_trace_init();
+
+#if PLATFORM_ANDROID
+ logger.opener = mono_log_open_logcat;
+ logger.writer = mono_log_write_logcat;
+ logger.closer = mono_log_close_logcat;
+ logger.dest = (char*) dest;
+#elif defined (HOST_IOS)
+ logger.opener = mono_log_open_asl;
+ logger.writer = mono_log_write_asl;
+ logger.closer = mono_log_close_asl;
+ logger.dest = (char*) dest;
+#else
+ if ((dest == NULL) || (strcmp("syslog", dest) != 0)) {
+ logger.opener = mono_log_open_logfile;
+ logger.writer = mono_log_write_logfile;
+ logger.closer = mono_log_close_logfile;
+ logger.dest = (char *) dest;
+ } else {
+ logger.opener = mono_log_open_syslog;
+ logger.writer = mono_log_write_syslog;
+ logger.closer = mono_log_close_syslog;
+ logger.dest = (char *) dest;
+ }
+#endif
+ mono_trace_set_log_handler_internal(&logger, NULL);
+}
+
+/**
+ * mono_trace_set_logheader:
+ * \param head Whether we want pid/date/time header on log messages
+ * Sets the current logging header option.
+ */
+void
+mono_trace_set_logheader_string(const char *head)
+{
+ if (head == NULL) {
+ mono_trace_log_header = FALSE;
+ } else {
+ mono_trace_log_header = TRUE;
+ }