00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00024 #include "config.h"
00025
00026 #include <cerrno>
00027 #include <cstdio>
00028 #include <cstring>
00029 #include <unistd.h>
00030
00031 #include <scalestack/kernel/log_console.h>
00032
00033 namespace scalestack
00034 {
00035 namespace kernel
00036 {
00037
00038
00039
00040
00041
00042 log_console::log_console()
00043 {
00044 }
00045
00046 void log_console::write_log(log::level log_level,
00047 const char* context,
00048 const char* message)
00049 {
00050
00051 char buffer[SCALESTACK_MAX_MESSAGE_SIZE];
00052 int size = snprintf(buffer, SCALESTACK_MAX_MESSAGE_SIZE, "%6s [%s] %s\n",
00053 log::level_name(log_level), context, message);
00054 buffer[SCALESTACK_MAX_MESSAGE_SIZE - 1] = '\n';
00055 if (size > SCALESTACK_MAX_MESSAGE_SIZE)
00056 size = SCALESTACK_MAX_MESSAGE_SIZE;
00057 if (write(1, buffer, size) == -1 && errno != EPIPE && errno != EINTR)
00058 fprintf(stderr, _("Failed console write: %s:%d\n"), strerror(errno), errno);
00059 }
00060
00061 }
00062 }