From dad300758486b59ac1356d55dbc2accd8e8d9720 Mon Sep 17 00:00:00 2001 From: Arkaitz Jimenez Date: Mon, 4 Jun 2012 01:53:24 +0100 Subject: Moved log method into logger class better than scheduler fixes #2495 --- src/rt/rust_log.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/rt/rust_log.cpp') diff --git a/src/rt/rust_log.cpp b/src/rt/rust_log.cpp index 29d35e27c21..774a549fe8b 100644 --- a/src/rt/rust_log.cpp +++ b/src/rt/rust_log.cpp @@ -89,6 +89,22 @@ append_string(char *buffer, const char *format, ...) { return buffer; } +void +rust_log::log(rust_task* task, uint32_t level, char const *fmt, ...) { + char buf[BUF_BYTES]; + va_list args; + va_start(args, fmt); + int formattedbytes = vsnprintf(buf, sizeof(buf), fmt, args); + if( formattedbytes and (unsigned)formattedbytes > BUF_BYTES ){ + const char truncatedstr[] = "[...]"; + memcpy( &buf[BUF_BYTES-sizeof(truncatedstr)], + truncatedstr, + sizeof(truncatedstr)); + } + trace_ln(task, level, buf); + va_end(args); +} + void rust_log::trace_ln(char *prefix, char *message) { char buffer[BUF_BYTES] = ""; @@ -302,6 +318,7 @@ void update_log_settings(void* crate_map, char* settings) { free(buffer); } + // // Local Variables: // mode: C++ -- cgit 1.4.1-3-g733a5