Browse Source

Add .Thread_Id option to log package

Oskar Nordquist 5 years ago
parent
commit
36cac87387
2 changed files with 8 additions and 1 deletions
  1. 6 0
      core/log/file_console_logger.odin
  2. 2 1
      core/runtime/core.odin

+ 6 - 0
core/log/file_console_logger.odin

@@ -83,6 +83,12 @@ file_console_logger_proc :: proc(logger_data: rawptr, level: Level, text: string
 
 
 	do_location_header(options, &buf, location);
 	do_location_header(options, &buf, location);
 
 
+	if .Thread_Id in options {
+		// NOTE(Oskar): not using context.thread_id here since that could be
+		// incorrect when replacing context for a thread.
+		fmt.sbprintf(&buf, "[{}] ", os.current_thread_id());
+	}
+
 	if data.ident != "" do fmt.sbprintf(&buf, "[%s] ", data.ident);
 	if data.ident != "" do fmt.sbprintf(&buf, "[%s] ", data.ident);
 	//TODO(Hoej): When we have better atomics and such, make this thread-safe
 	//TODO(Hoej): When we have better atomics and such, make this thread-safe
 	fmt.fprintf(h, "%s %s\n", strings.to_string(buf), text);
 	fmt.fprintf(h, "%s %s\n", strings.to_string(buf), text);

+ 2 - 1
core/runtime/core.odin

@@ -279,7 +279,8 @@ Logger_Option :: enum {
 	Long_File_Path,
 	Long_File_Path,
 	Line,
 	Line,
 	Procedure,
 	Procedure,
-	Terminal_Color
+	Terminal_Color,
+	Thread_Id
 }
 }
 
 
 Logger_Options :: bit_set[Logger_Option];
 Logger_Options :: bit_set[Logger_Option];