summaryrefslogtreecommitdiff
path: root/lib/logger/log.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/logger/log.c')
-rw-r--r--lib/logger/log.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/lib/logger/log.c b/lib/logger/log.c
index 5350eda..63e9558 100644
--- a/lib/logger/log.c
+++ b/lib/logger/log.c
@@ -12,8 +12,14 @@
static void log_string(char *str)
{
- if(get_max_fd()<2)return;
+// if(get_max_fd()<2)return;
// syscall_write(2,str,strlen(str));
+
+ // TODO: use FD abstraction!
+ while(*str!=0)
+ {
+ serial_write(*str++);
+ }
}
void log(char *module_name, int log_level, char *format_string, ...)
@@ -28,19 +34,18 @@ void log(char *module_name, int log_level, char *format_string, ...)
char buf_log[256];
char buf_time[20];
- uint32_t t=timer_get_ms();
- uint32_t s=t/25;
- uint32_t ms=t*1000/25-1000*s;
+ uint64_t t=timer_get_uptime_ms();
+ uint32_t ms=t%1000;
+ uint32_t s=t/1000;
- //tfp_sprintf(buf_time,"[%3d.%05d]",s,ms);
- tfp_sprintf(buf_time,"[ ]");
+ tfp_sprintf(buf_time,"[%04d %03d]",s,ms);
va_list va;
va_start(va,format_string);
tfp_vsprintf(buf_info,format_string,va);
va_end(va);
- tfp_sprintf(buf_log,"\033[36;40m%s\033[31;40m %s:\033[37;40m %s\n",buf_time,module_name,buf_info);
+ tfp_sprintf(buf_log,"\033[36;40m%s\033[31;40m %10s:\033[37;40m %s\n",buf_time,module_name,buf_info);
log_string(buf_log);
}
@@ -51,6 +56,7 @@ void panic(char *module_name, char *message)
tfp_sprintf(buf_log,"\033[41;37m\n !! KERNEL PANIC !! %s: %s\n\n",module_name,message);
// log_string(buf_log);
//PANIC DIRECTLY TO STDOUT//
+ log_string(buf_log);
syscall_write(1,buf_log,strlen(buf_log));
while(1)