[remoting] Pass correct object to invoke of IRemotingTypeInfo.CanCastTo
[mono.git] / mono / utils / mono-log-windows.c
index e85e808348ffa7ee3018b0933d9b43cfdadd9b84..a39360398bc8de726ff9fd853f924e105f69802e 100644 (file)
@@ -1,5 +1,6 @@
-/*
- * mono-log-windows.c: Simplistic simulation of a syslog logger for Windows
+/**
+ * \file
+ * Simplistic simulation of a syslog logger for Windows
  *
  * This module contains the Windows syslog logger interface
  *
@@ -13,7 +14,7 @@
 #include <unistd.h>
 #endif
 
-#ifdef WIN32
+#ifdef HOST_WIN32
 
 #include <stdlib.h>
 #include <stdio.h>
 #include <glib.h>
 #include <errno.h>
 #include <time.h>
-#include <sys/time.h>
-#include "mono-logger.h"
+#include <process.h>
+#include "mono-logger-internals.h"
+#include "mono-proclib.h"
 
 static FILE *logFile = NULL;
 static void *logUserData = NULL;
-static char *logFileName = L".//mono.log";
+static wchar_t *logFileName = L".//mono.log";
 
 /**
  * mapSyslogLevel:
@@ -35,12 +37,12 @@ static char *logFileName = L".//mono.log";
  *     @level - GLogLevelFlags value
  *     @returns The equivalent character identifier
  */
-static __inline__ char 
+static inline char 
 mapLogFileLevel(GLogLevelFlags level) 
 {
        if (level & G_LOG_LEVEL_ERROR)
                return ('E');
-       if (level & G_LOG_LEVEL_CRIT)
+       if (level & G_LOG_LEVEL_CRITICAL)
                return ('C');
        if (level & G_LOG_LEVEL_WARNING)
                return ('W');
@@ -54,63 +56,60 @@ mapLogFileLevel(GLogLevelFlags level)
 }
 
 /**
- * mono_log_open_logfile
- *     
- *     Open the logfile. If the path is not specified default to stdout. If the
- *     open fails issue a warning and use stdout as the log file destination.
- *
- *     @ident - Identifier: ignored
- *     @userData - Not used
+ * mono_log_open_syslog:
+ * \param ident Identifier: ignored
+ * \param userData Not used
+ * Open the syslog file. If the open fails issue a warning and 
+ * use stdout as the log file destination.
  */
 void
 mono_log_open_syslog(const char *ident, void *userData)
 {
-       logFile = fopen(logFileName, "w");
+       logFile = _wfopen(logFileName, L"w");
        if (logFile == NULL) {
                g_warning("opening of log file %s failed with %s",
                          strerror(errno));
+               logFile = stdout;
        }
        logUserData = userData;
 }
 
 /**
- * mono_log_write_logfile
- *     
- *     Write data to the log file.
- *
- *     @domain - Identifier string
- *     @level - Logging level flags
- *     @format - Printf format string
- *     @vargs - Variable argument list
+ * mono_log_write_syslog
+ * \param domain Identifier string
+ * \param level Logging level flags
+ * \param format \c printf format string
+ * \param vargs Variable argument list
+ * Write data to the syslog file.
  */
 void
-mono_log_write_syslog(const char *domain, GLogLevelFlags level, mono_bool hdr, const char *format, va_list args)
+mono_log_write_syslog(const char *domain, GLogLevelFlags level, mono_bool hdr, const char *message)
 {
        time_t t;
-       struct tm tod;
-       char logTime[80];
-       pid_t pid;
+       int pid;
+       char logTime [80];
 
        if (logFile == NULL)
-               mono_log_open_logfile(NULL, NULL);
+               logFile = stdout;
 
+       struct tm *tod;
        time(&t);
-       localtime_r(&t, &tod);
-       pid = getpid();
-       strftime(logTime, sizeof(logTime), "%F %T", &tod);
-       fprintf(logFile, "%s level[%c] mono[%d]: ",logTime,mapLogFileLevel(level),pid);
-       vfprintf(logFile, format, args);
-       fputc('\n', logFile);
+       tod = localtime(&t);
+       pid = mono_process_current_pid ();
+       strftime(logTime, sizeof(logTime), "%F %T", tod);
+
+       fprintf (logFile, "%s level[%c] mono[%d]: %s\n", logTime, mapLogFileLevel (level), pid, message);
+
        fflush(logFile);
 
-       if (level == G_LOG_FLAG_FATAL)
+       if (level & G_LOG_LEVEL_ERROR)
                abort();
 }
 
 /**
- * mono_log_close_logfile
+ * mono_log_close_syslog
  *
- *     Close the log file
+ *     Close the syslog file
  */
 void
 mono_log_close_syslog()