diff options
Diffstat (limited to 'lib/logger/log.c')
| -rw-r--r-- | lib/logger/log.c | 20 |
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) |
