Index: log.c
===================================================================
--- log.c	(revision 985)
+++ log.c	(revision 986)
@@ -12,8 +12,10 @@
 #endif
 
 void raydium_console_line_add(char *format, ...);
- void raydium_parser_trim_right(char *org);
+void raydium_parser_trim_right(char *org);
+unsigned long raydium_timecall_clock(void);
 
+
 void raydium_log(char *format, ...)
 {
 char str[RAYDIUM_MAX_NAME_LEN];
@@ -21,7 +23,18 @@
 int retlen;
 int i,offset;
 
+static unsigned long start;
+unsigned long now;
+float elapsed;
 
+if(!start) start=raydium_timecall_clock();
+
+now=raydium_timecall_clock();
+if(raydium_timecall_clocks_per_sec)
+    elapsed=(now-start)/(float)raydium_timecall_clocks_per_sec;
+else
+    elapsed=0;
+
 va_start(argptr,format);
 retlen = vsnprintf(str,RAYDIUM_MAX_NAME_LEN - 1, format,argptr);
 va_end(argptr);
@@ -29,19 +42,27 @@
 if(retlen < 0) retlen = 0;
 str[retlen] = '\0';
 
-printf("Raydium: %s\n",str);
-if(raydium_log_file) fprintf(raydium_log_file,"%s\n",str);
+if(raydium_file_log_time)
+    {
+    printf("[%.6f] %s\n",elapsed,str);
+    if(raydium_log_file) fprintf(raydium_log_file,"[%.6f] %s\n",elapsed,str);
+    }
+else
+    {
+    printf("Raydium: %s\n",str);
+    if(raydium_log_file) fprintf(raydium_log_file,"%s\n",str);
+    }
 
 raydium_parser_trim_right(str);
 retlen=strlen(str);
 offset=0;
 for(i=0;i<retlen+1;i++)
-	{
-	if(str[i]=='\n' || str[i]==0)
-		{
-		str[i]=0;
-		raydium_console_line_add("%s", str+offset);
-		offset=i+1;
-		}
-	}
+    {
+    if(str[i]=='\n' || str[i]==0)
+        {
+        str[i]=0;
+        raydium_console_line_add("%s", str+offset);
+        offset=i+1;
+        }
+    }
 }