|
Blender
V2.93
|
#include <assert.h>#include <stdarg.h>#include <stdint.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <inttypes.h>#include "MEM_guardedalloc.h"#include "CLG_log.h"Go to the source code of this file.
Classes | |
| struct | CLG_IDFilter |
| struct | CLogContext |
| struct | CLogStringBuf |
Macros | |
| #define | __STDC_FORMAT_MACROS |
| #define | STREQ(a, b) (strcmp(a, b) == 0) |
| #define | STREQLEN(a, b, n) (strncmp(a, b, n) == 0) |
| #define | PATHSEP_CHAR '/' |
Typedefs | |
Internal Types | |
| typedef struct CLG_IDFilter | CLG_IDFilter |
| typedef struct CLogContext | CLogContext |
Functions | |
Context Type Access | |
| static bool | clg_ctx_filter_check (CLogContext *ctx, const char *identifier) |
| static CLG_LogType * | clg_ctx_type_find_by_name (CLogContext *ctx, const char *identifier) |
| static CLG_LogType * | clg_ctx_type_register (CLogContext *ctx, const char *identifier) |
| static void | clg_ctx_error_action (CLogContext *ctx) |
| static void | clg_ctx_fatal_action (CLogContext *ctx) |
| static void | clg_ctx_backtrace (CLogContext *ctx) |
| static uint64_t | clg_timestamp_ticks_get (void) |
Logging API | |
| static void | write_timestamp (CLogStringBuf *cstr, const uint64_t timestamp_tick_start) |
| static void | write_severity (CLogStringBuf *cstr, enum CLG_Severity severity, bool use_color) |
| static void | write_type (CLogStringBuf *cstr, CLG_LogType *lg) |
| static void | write_file_line_fn (CLogStringBuf *cstr, const char *file_line, const char *fn, const bool use_basename) |
| void | CLG_log_str (CLG_LogType *lg, enum CLG_Severity severity, const char *file_line, const char *fn, const char *message) |
| void | CLG_logf (CLG_LogType *lg, enum CLG_Severity severity, const char *file_line, const char *fn, const char *fmt,...) |
Logging Context API | |
| static void | CLG_ctx_output_set (CLogContext *ctx, void *file_handle) |
| static void | CLG_ctx_output_use_basename_set (CLogContext *ctx, int value) |
| static void | CLG_ctx_output_use_timestamp_set (CLogContext *ctx, int value) |
| static void | CLT_ctx_error_fn_set (CLogContext *ctx, void(*error_fn)(void *file_handle)) |
| static void | CLG_ctx_fatal_fn_set (CLogContext *ctx, void(*fatal_fn)(void *file_handle)) |
| static void | CLG_ctx_backtrace_fn_set (CLogContext *ctx, void(*backtrace_fn)(void *file_handle)) |
| static void | clg_ctx_type_filter_append (CLG_IDFilter **flt_list, const char *type_match, int type_match_len) |
| static void | CLG_ctx_type_filter_exclude (CLogContext *ctx, const char *type_match, int type_match_len) |
| static void | CLG_ctx_type_filter_include (CLogContext *ctx, const char *type_match, int type_match_len) |
| static void | CLG_ctx_level_set (CLogContext *ctx, int level) |
| static CLogContext * | CLG_ctx_init (void) |
| static void | CLG_ctx_free (CLogContext *ctx) |
Logging Reference API | |
Use to avoid look-ups each time. | |
| void | CLG_logref_init (CLG_LogRef *clg_ref) |
| int | CLG_color_support_get (CLG_LogRef *clg_ref) |
Mini Buffer Functionality | |
| #define | CLOG_BUF_LEN_INIT 512 |
| typedef struct CLogStringBuf | CLogStringBuf |
| static void | clg_str_init (CLogStringBuf *cstr, char *buf_stack, uint buf_stack_len) |
| static void | clg_str_free (CLogStringBuf *cstr) |
| static void | clg_str_reserve (CLogStringBuf *cstr, const uint len) |
| static void | clg_str_append_with_len (CLogStringBuf *cstr, const char *str, const uint len) |
| static void | clg_str_append (CLogStringBuf *cstr, const char *str) |
| static void | clg_str_vappendf (CLogStringBuf *cstr, const char *fmt, va_list args) |
Internal Utilities | |
| #define | COLOR_LEN (COLOR_RESET + 1) |
| enum | eCLogColor { COLOR_DEFAULT , COLOR_RED , COLOR_GREEN , COLOR_YELLOW , COLOR_RESET } |
| static const char * | clg_color_table [COLOR_LEN] = {NULL} |
| static const char * | clg_severity_str [CLG_SEVERITY_LEN] |
| static void | clg_color_table_init (bool use_color) |
| static const char * | clg_severity_as_text (enum CLG_Severity severity) |
| static enum eCLogColor | clg_severity_to_color (enum CLG_Severity severity) |
Public Logging API | |
| static struct CLogContext * | g_ctx = NULL |
| void | CLG_init (void) |
| void | CLG_exit (void) |
| void | CLG_output_set (void *file_handle) |
| void | CLG_output_use_basename_set (int value) |
| void | CLG_output_use_timestamp_set (int value) |
| void | CLG_error_fn_set (void(*error_fn)(void *file_handle)) |
| void | CLG_fatal_fn_set (void(*fatal_fn)(void *file_handle)) |
| void | CLG_backtrace_fn_set (void(*fatal_fn)(void *file_handle)) |
| void | CLG_type_filter_exclude (const char *type_match, int type_match_len) |
| void | CLG_type_filter_include (const char *type_match, int type_match_len) |
| void | CLG_level_set (int level) |
| #define COLOR_LEN (COLOR_RESET + 1) |
| typedef struct CLG_IDFilter CLG_IDFilter |
| typedef struct CLogContext CLogContext |
| typedef struct CLogStringBuf CLogStringBuf |
| enum eCLogColor |
| void CLG_backtrace_fn_set | ( | void(*)(void *file_handle) | fatal_fn | ) |
Definition at line 745 of file clog.c.
References CLG_ctx_backtrace_fn_set(), CLogContext::fatal_fn, and g_ctx.
Referenced by arg_handle_log_show_backtrace_set().
| int CLG_color_support_get | ( | CLG_LogRef * | clg_ref | ) |
Definition at line 799 of file clog.c.
References CLG_logref_init(), CLG_LogType::ctx, NULL, CLG_LogRef::type, and CLogContext::use_color.
Referenced by blender::gpu::debug::debug_callback(), and blender::gpu::Shader::print_log().
|
static |
Definition at line 243 of file clog.c.
References clg_color_table, COLOR_DEFAULT, COLOR_GREEN, COLOR_LEN, COLOR_RED, COLOR_RESET, and COLOR_YELLOW.
Referenced by CLG_init().
|
static |
Definition at line 387 of file clog.c.
References CLogContext::backtrace_fn, CLogContext::callbacks, and CLogContext::output_file.
Referenced by CLG_log_str(), and CLG_logf().
|
static |
Definition at line 614 of file clog.c.
References CLogContext::backtrace_fn, and CLogContext::callbacks.
Referenced by CLG_backtrace_fn_set().
|
static |
Definition at line 371 of file clog.c.
References CLogContext::callbacks, CLogContext::error_fn, NULL, and CLogContext::output_file.
Referenced by CLG_logf().
|
static |
Definition at line 378 of file clog.c.
References CLogContext::callbacks, CLogContext::fatal_fn, NULL, and CLogContext::output_file.
Referenced by CLG_log_str(), and CLG_logf().
|
static |
Action on fatal severity.
Definition at line 609 of file clog.c.
References CLogContext::callbacks, and CLogContext::fatal_fn.
Referenced by CLG_fatal_fn_set().
|
static |
Filter the identifier based on very basic globbing.
foo exact match of foo.foo.bar exact match for foo.barfoo.* match for foo & foo.bar & foo.bar.baz*bar* match for foo.bar & baz.bar & foo.barbaz* matches everything. Definition at line 312 of file clog.c.
References CLogContext::filters, len, CLG_IDFilter::match, MEM_callocN, CLG_IDFilter::next, NULL, STREQ, and STREQLEN.
Referenced by clg_ctx_type_register().
|
static |
Definition at line 667 of file clog.c.
References CLogContext::filters, MEM_freeN, CLG_LogType::next, CLG_LogRef::next, CLG_IDFilter::next, NULL, CLogContext::refs, CLG_LogRef::type, and CLogContext::types.
Referenced by CLG_exit().
|
static |
Definition at line 655 of file clog.c.
References CLG_ctx_output_set(), CLogContext::default_type, CLogContext::level, MEM_callocN, and NULL.
Referenced by CLG_init().
|
static |
Definition at line 647 of file clog.c.
References CLogContext::default_type, CLogContext::level, CLG_LogType::next, and CLogContext::types.
Referenced by CLG_level_set().
|
static |
Definition at line 563 of file clog.c.
References CLogContext::output, CLogContext::output_file, and CLogContext::use_color.
Referenced by CLG_ctx_init(), and CLG_output_set().
|
static |
Definition at line 589 of file clog.c.
References CLogContext::use_basename.
Referenced by CLG_output_use_basename_set().
|
static |
Definition at line 594 of file clog.c.
References clg_timestamp_ticks_get(), CLogContext::timestamp_tick_start, and CLogContext::use_timestamp.
Referenced by CLG_output_use_timestamp_set().
|
static |
Definition at line 619 of file clog.c.
References CLG_IDFilter::match, MEM_callocN, and CLG_IDFilter::next.
Referenced by CLG_ctx_type_filter_exclude(), and CLG_ctx_type_filter_include().
|
static |
Definition at line 633 of file clog.c.
References clg_ctx_type_filter_append(), and CLogContext::filters.
Referenced by CLG_type_filter_exclude().
|
static |
Definition at line 640 of file clog.c.
References clg_ctx_type_filter_append(), and CLogContext::filters.
Referenced by CLG_type_filter_include().
|
static |
Definition at line 345 of file clog.c.
References CLG_LogType::next, NULL, STREQ, and CLogContext::types.
Referenced by clg_ctx_type_register(), and CLG_logref_init().
|
static |
Definition at line 355 of file clog.c.
References clg_ctx_filter_check(), clg_ctx_type_find_by_name(), CLG_FLAG_USE, CLG_LogType::ctx, CLogContext::default_type, CLG_LogType::flag, CLG_LogType::identifier, CLG_LogType::level, CLogContext::level, MEM_callocN, CLG_LogType::next, NULL, and CLogContext::types.
Referenced by CLG_logref_init().
| void CLG_error_fn_set | ( | void(*)(void *file_handle) | error_fn | ) |
Definition at line 735 of file clog.c.
References CLT_ctx_error_fn_set(), CLogContext::error_fn, and g_ctx.
Referenced by arg_handle_debug_exit_on_error().
| void CLG_exit | ( | void | ) |
Definition at line 715 of file clog.c.
References CLG_ctx_free(), and g_ctx.
Referenced by main(), BlendfileLoadingBaseTest::TearDownTestCase(), blender::bke::tests::TEST(), and WM_exit_ex().
| void CLG_fatal_fn_set | ( | void(*)(void *file_handle) | fatal_fn | ) |
Definition at line 740 of file clog.c.
References CLG_ctx_fatal_fn_set(), CLogContext::fatal_fn, and g_ctx.
Referenced by main().
| void CLG_init | ( | void | ) |
Definition at line 708 of file clog.c.
References clg_color_table_init(), CLG_ctx_init(), g_ctx, and CLogContext::use_color.
Referenced by main(), BlendfileLoadingBaseTest::SetUpTestCase(), and blender::bke::tests::TEST().
| void CLG_level_set | ( | int | level | ) |
Definition at line 760 of file clog.c.
References CLG_ctx_level_set(), g_ctx, and CLogContext::level.
Referenced by arg_handle_log_level_set(), and main().
| void CLG_log_str | ( | CLG_LogType * | lg, |
| enum CLG_Severity | severity, | ||
| const char * | file_line, | ||
| const char * | fn, | ||
| const char * | message | ||
| ) |
Definition at line 472 of file clog.c.
References CLogContext::backtrace_fn, CLogContext::callbacks, clg_ctx_backtrace(), clg_ctx_fatal_action(), CLG_SEVERITY_FATAL, clg_str_append(), clg_str_free(), clg_str_init(), CLOG_BUF_LEN_INIT, CLG_LogType::ctx, CLogStringBuf::data, CLogStringBuf::len, CLogContext::output, CLogContext::timestamp_tick_start, CLogContext::use_basename, CLogContext::use_color, CLogContext::use_timestamp, write_file_line_fn(), write_severity(), write_timestamp(), and write_type().
| void CLG_logf | ( | CLG_LogType * | lg, |
| enum CLG_Severity | severity, | ||
| const char * | file_line, | ||
| const char * | fn, | ||
| const char * | fmt, | ||
| ... | |||
| ) |
Definition at line 510 of file clog.c.
References CLogContext::backtrace_fn, CLogContext::callbacks, clg_ctx_backtrace(), clg_ctx_error_action(), clg_ctx_fatal_action(), CLG_SEVERITY_ERROR, CLG_SEVERITY_FATAL, clg_str_append(), clg_str_free(), clg_str_init(), clg_str_vappendf(), CLOG_BUF_LEN_INIT, CLG_LogType::ctx, CLogStringBuf::data, CLogStringBuf::len, CLogContext::output, CLogContext::timestamp_tick_start, CLogContext::use_basename, CLogContext::use_color, CLogContext::use_timestamp, write_file_line_fn(), write_severity(), write_timestamp(), and write_type().
| void CLG_logref_init | ( | CLG_LogRef * | clg_ref | ) |
Definition at line 773 of file clog.c.
References atomic_cas_ptr(), clg_ctx_type_find_by_name(), clg_ctx_type_register(), g_ctx, CLG_LogRef::identifier, CLG_LogRef::next, NULL, CLogContext::refs, and CLG_LogRef::type.
Referenced by CLG_color_support_get().
| void CLG_output_set | ( | void * | file_handle | ) |
Definition at line 720 of file clog.c.
References CLG_ctx_output_set(), and g_ctx.
Referenced by arg_handle_log_file_set().
| void CLG_output_use_basename_set | ( | int | value | ) |
Definition at line 725 of file clog.c.
References CLG_ctx_output_use_basename_set(), and g_ctx.
Referenced by arg_handle_log_show_basename_set(), and main().
| void CLG_output_use_timestamp_set | ( | int | value | ) |
Definition at line 730 of file clog.c.
References CLG_ctx_output_use_timestamp_set(), and g_ctx.
Referenced by arg_handle_log_show_timestamp_set().
|
static |
Definition at line 264 of file clog.c.
References CLG_SEVERITY_LEN, and clg_severity_str.
Referenced by write_severity().
|
static |
Definition at line 264 of file clog.c.
Referenced by write_severity().
|
static |
Definition at line 180 of file clog.c.
References clg_str_append_with_len(), and str.
Referenced by CLG_log_str(), CLG_logf(), write_file_line_fn(), write_severity(), and write_type().
|
static |
Definition at line 168 of file clog.c.
References clg_str_reserve(), CLogStringBuf::data, CLogStringBuf::len, len, and str.
Referenced by clg_str_append(), write_file_line_fn(), and write_timestamp().
|
static |
Definition at line 140 of file clog.c.
References CLogStringBuf::data, CLogStringBuf::is_alloc, and MEM_freeN.
Referenced by CLG_log_str(), and CLG_logf().
|
static |
Definition at line 132 of file clog.c.
References CLogStringBuf::data, CLogStringBuf::is_alloc, CLogStringBuf::len, and CLogStringBuf::len_alloc.
Referenced by CLG_log_str(), and CLG_logf().
|
static |
Definition at line 147 of file clog.c.
References CLogStringBuf::data, data, CLogStringBuf::is_alloc, CLogStringBuf::len, len, CLogStringBuf::len_alloc, MEM_mallocN, and MEM_reallocN.
Referenced by clg_str_append_with_len(), and clg_str_vappendf().
|
static |
Definition at line 186 of file clog.c.
References clg_str_reserve(), len_alloc, and va_copy.
Referenced by CLG_logf().
|
static |
Definition at line 396 of file clog.c.
References NULL.
Referenced by CLG_ctx_output_use_timestamp_set(), and write_timestamp().
| void CLG_type_filter_exclude | ( | const char * | type_match, |
| int | type_match_len | ||
| ) |
Definition at line 750 of file clog.c.
References CLG_ctx_type_filter_exclude(), and g_ctx.
Referenced by arg_handle_log_set().
| void CLG_type_filter_include | ( | const char * | type_match, |
| int | type_match_len | ||
| ) |
Definition at line 755 of file clog.c.
References CLG_ctx_type_filter_include(), and g_ctx.
Referenced by arg_handle_log_set().
|
static |
Action on error severity.
Definition at line 603 of file clog.c.
References CLogContext::callbacks, and CLogContext::error_fn.
Referenced by CLG_error_fn_set().
|
static |
Definition at line 448 of file clog.c.
References clg_str_append(), clg_str_append_with_len(), and PATHSEP_CHAR.
Referenced by CLG_log_str(), and CLG_logf().
|
static |
Definition at line 427 of file clog.c.
References clg_color_table, clg_severity_as_text(), CLG_SEVERITY_LEN, clg_severity_to_color(), clg_str_append(), and COLOR_RESET.
Referenced by CLG_log_str(), and CLG_logf().
|
static |
Definition at line 415 of file clog.c.
References clg_str_append_with_len(), clg_timestamp_ticks_get(), PRIu64, and snprintf.
Referenced by CLG_log_str(), and CLG_logf().
|
static |
Definition at line 441 of file clog.c.
References clg_str_append(), and CLG_LogType::identifier.
Referenced by CLG_log_str(), and CLG_logf().
Definition at line 238 of file clog.c.
Referenced by clg_color_table_init(), and write_severity().
|
static |
Definition at line 257 of file clog.c.
Referenced by clg_severity_as_text().
|
static |
Definition at line 706 of file clog.c.
Referenced by CLG_backtrace_fn_set(), CLG_error_fn_set(), CLG_exit(), CLG_fatal_fn_set(), CLG_init(), CLG_level_set(), CLG_logref_init(), CLG_output_set(), CLG_output_use_basename_set(), CLG_output_use_timestamp_set(), CLG_type_filter_exclude(), and CLG_type_filter_include().