Blender V5.0
clog.cc File Reference
#include <cassert>
#include <cstdarg>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <mutex>
#include <set>
#include <cinttypes>
#include <algorithm>
#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)
#define STREQLEN(a, b, n)
#define PATHSEP_CHAR   '/'

Functions

Global LogRef Single Linked List
static CLG_LogRef ** clg_all_refs_p ()
Context Type Access
static bool clg_ctx_filter_check (CLogContext *ctx, const char *identifier)
static CLG_LogTypeclg_ctx_type_find_by_name (CLogContext *ctx, const char *identifier)
static CLG_LogTypeclg_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 ()
Logging API
static void write_timestamp (CLogStringBuf *cstr, const uint64_t timestamp_tick_start)
static void write_memory (CLogStringBuf *cstr)
static void write_level (CLogStringBuf *cstr, enum CLG_Level level, bool use_color)
static void write_type (CLogStringBuf *cstr, const CLG_LogType *lg)
static void write_file_line_fn (CLogStringBuf *cstr, const char *file_line, const char *fn, const bool use_basename, const bool use_color)
void CLG_log_str (const CLG_LogType *lg, enum CLG_Level level, const char *file_line, const char *fn, const char *message)
void CLG_logf (const CLG_LogType *lg, enum CLG_Level level, const char *file_line, const char *fn, const char *format,...)
void CLG_log_raw (const CLG_LogType *lg, const char *message)
Logging Context API
static void CLG_ctx_output_set (CLogContext *ctx, void *file_handle)
static void CLG_ctx_output_use_source_set (CLogContext *ctx, int value)
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 CLG_ctx_output_use_memory_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, CLG_Level level)
static CLogContextCLG_ctx_init ()
static void CLG_ctx_free (CLogContext *ctx)
Logging Reference API

Use to avoid look-ups each time.

void CLG_logref_register (CLG_LogRef *clg_ref)
void CLG_logref_list_all (void(*callback)(const char *identifier, void *user_data), void *user_data)
void CLG_logref_init (CLG_LogRef *clg_ref)
int CLG_color_support_get (CLG_LogRef *clg_ref)

Variables

Internal Types
static std::mutex LOG_MUTEX

Mini Buffer Functionality

Use so we can do a single call to write.

#define CLOG_BUF_LEN_INIT   512
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_append_char (CLogStringBuf *cstr, const char c, const uint len)
static void clg_str_vappendf (CLogStringBuf *cstr, const char *format, va_list args)
static void clg_str_indent_multiline (CLogStringBuf *cstr, const uint indent_len)

Internal Utilities

#define COLOR_LEN   (COLOR_RESET + 1)
enum  eCLogColor {
  COLOR_DEFAULT , COLOR_RED , COLOR_GREEN , COLOR_YELLOW ,
  COLOR_DIM , COLOR_RESET
}
static const char * clg_color_table [COLOR_LEN] = {nullptr}
static void clg_color_table_init (bool use_color)
static const char * clg_level_as_text (enum CLG_Level level)
static enum eCLogColor clg_level_to_color (enum CLG_Level level)

Public Logging API

Currently uses global context.

static struct CLogContextg_ctx = nullptr
static bool g_quiet = false
void CLG_init ()
void CLG_exit ()
void CLG_output_set (void *file_handle)
void CLG_output_use_source_set (int value)
void CLG_output_use_basename_set (int value)
void CLG_output_use_timestamp_set (int value)
void CLG_output_use_memory_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 (CLG_Level level)
void CLG_quiet_set (bool quiet)
bool CLG_quiet_get ()

Macro Definition Documentation

◆ __STDC_FORMAT_MACROS

#define __STDC_FORMAT_MACROS

Definition at line 46 of file clog.cc.

◆ CLOG_BUF_LEN_INIT

#define CLOG_BUF_LEN_INIT   512

Definition at line 135 of file clog.cc.

Referenced by CLG_log_str(), and CLG_logf().

◆ COLOR_LEN

#define COLOR_LEN   (COLOR_RESET + 1)

Definition at line 299 of file clog.cc.

Referenced by clg_color_table_init().

◆ PATHSEP_CHAR

#define PATHSEP_CHAR   '/'

Definition at line 64 of file clog.cc.

◆ STREQ

#define STREQ ( a,
b )
Value:
(strcmp(a, b) == 0)

Definition at line 58 of file clog.cc.

Referenced by clg_ctx_filter_check(), and clg_ctx_type_find_by_name().

◆ STREQLEN

#define STREQLEN ( a,
b,
n )
Value:
(strncmp(a, b, n) == 0)

Definition at line 59 of file clog.cc.

Referenced by clg_ctx_filter_check().

Enumeration Type Documentation

◆ eCLogColor

enum eCLogColor
Enumerator
COLOR_DEFAULT 
COLOR_RED 
COLOR_GREEN 
COLOR_YELLOW 
COLOR_DIM 
COLOR_RESET 

Definition at line 290 of file clog.cc.

Function Documentation

◆ clg_all_refs_p()

CLG_LogRef ** clg_all_refs_p ( )
static

Definition at line 119 of file clog.cc.

Referenced by CLG_ctx_free(), CLG_logref_list_all(), and CLG_logref_register().

◆ CLG_backtrace_fn_set()

void CLG_backtrace_fn_set ( void(* fatal_fn )(void *file_handle))

◆ CLG_color_support_get()

◆ clg_color_table_init()

void clg_color_table_init ( bool use_color)
static

Definition at line 306 of file clog.cc.

References clg_color_table, COLOR_DEFAULT, COLOR_DIM, COLOR_GREEN, COLOR_LEN, COLOR_RED, COLOR_RESET, COLOR_YELLOW, and i.

Referenced by CLG_init().

◆ clg_ctx_backtrace()

void clg_ctx_backtrace ( CLogContext * ctx)
static

Definition at line 463 of file clog.cc.

References CLogContext::backtrace_fn, CLogContext::callbacks, and CLogContext::output_file.

Referenced by CLG_log_str(), and CLG_logf().

◆ CLG_ctx_backtrace_fn_set()

void CLG_ctx_backtrace_fn_set ( CLogContext * ctx,
void(* backtrace_fn )(void *file_handle) )
static

Definition at line 774 of file clog.cc.

References CLogContext::backtrace_fn, and CLogContext::callbacks.

Referenced by CLG_backtrace_fn_set().

◆ clg_ctx_error_action()

void clg_ctx_error_action ( CLogContext * ctx)
static

Definition at line 447 of file clog.cc.

References CLogContext::callbacks, CLogContext::error_fn, and CLogContext::output_file.

Referenced by CLG_logf().

◆ clg_ctx_fatal_action()

void clg_ctx_fatal_action ( CLogContext * ctx)
static

Definition at line 454 of file clog.cc.

References CLogContext::callbacks, CLogContext::fatal_fn, and CLogContext::output_file.

Referenced by CLG_log_str(), and CLG_logf().

◆ CLG_ctx_fatal_fn_set()

void CLG_ctx_fatal_fn_set ( CLogContext * ctx,
void(* fatal_fn )(void *file_handle) )
static

Action on fatal level.

Definition at line 769 of file clog.cc.

References CLogContext::callbacks, and CLogContext::fatal_fn.

Referenced by CLG_fatal_fn_set().

◆ clg_ctx_filter_check()

bool clg_ctx_filter_check ( CLogContext * ctx,
const char * identifier )
static

Filter the identifier based on very basic globbing.

  • foo matches everything starting with foo.
  • *bar* match for foo.bar & baz.bar & foo.barbaz
  • * matches everything.

Definition at line 371 of file clog.cc.

References CLG_LEVEL_INFO, CLogContext::default_type, CLogContext::filters, i, len, CLogContext::level, CLG_IDFilter::match, MEM_calloc_arrayN(), MEM_freeN(), CLG_IDFilter::next, STREQ, and STREQLEN.

Referenced by clg_ctx_type_register().

◆ CLG_ctx_free()

void CLG_ctx_free ( CLogContext * ctx)
static

◆ CLG_ctx_init()

CLogContext * CLG_ctx_init ( )
static

◆ CLG_ctx_level_set()

void CLG_ctx_level_set ( CLogContext * ctx,
CLG_Level level )
static

Definition at line 811 of file clog.cc.

References CLogContext::default_type, CLogContext::level, CLG_LogType::next, and CLogContext::types.

Referenced by CLG_level_set().

◆ CLG_ctx_output_set()

void CLG_ctx_output_set ( CLogContext * ctx,
void * file_handle )
static

Definition at line 713 of file clog.cc.

References CLogContext::output, CLogContext::output_file, and CLogContext::use_color.

Referenced by CLG_ctx_init(), and CLG_output_set().

◆ CLG_ctx_output_use_basename_set()

void CLG_ctx_output_use_basename_set ( CLogContext * ctx,
int value )
static

Definition at line 744 of file clog.cc.

References CLogContext::use_basename.

Referenced by CLG_output_use_basename_set().

◆ CLG_ctx_output_use_memory_set()

void CLG_ctx_output_use_memory_set ( CLogContext * ctx,
int value )
static

Definition at line 757 of file clog.cc.

References CLogContext::use_memory.

Referenced by CLG_output_use_memory_set().

◆ CLG_ctx_output_use_source_set()

void CLG_ctx_output_use_source_set ( CLogContext * ctx,
int value )
static

Definition at line 739 of file clog.cc.

References CLogContext::use_source.

Referenced by CLG_output_use_source_set().

◆ CLG_ctx_output_use_timestamp_set()

void CLG_ctx_output_use_timestamp_set ( CLogContext * ctx,
int value )
static

◆ clg_ctx_type_filter_append()

void clg_ctx_type_filter_append ( CLG_IDFilter ** flt_list,
const char * type_match,
int type_match_len )
static

◆ CLG_ctx_type_filter_exclude()

void CLG_ctx_type_filter_exclude ( CLogContext * ctx,
const char * type_match,
int type_match_len )
static

Definition at line 794 of file clog.cc.

References clg_ctx_type_filter_append(), and CLogContext::filters.

Referenced by CLG_type_filter_exclude().

◆ CLG_ctx_type_filter_include()

void CLG_ctx_type_filter_include ( CLogContext * ctx,
const char * type_match,
int type_match_len )
static

◆ clg_ctx_type_find_by_name()

CLG_LogType * clg_ctx_type_find_by_name ( CLogContext * ctx,
const char * identifier )
static
Note
This should never be called per logging call. Searching is only to get an initial handle.

Definition at line 418 of file clog.cc.

References CLG_LogType::next, STREQ, and CLogContext::types.

Referenced by clg_ctx_type_register(), and CLG_logref_init().

◆ clg_ctx_type_register()

◆ CLG_error_fn_set()

void CLG_error_fn_set ( void(* error_fn )(void *file_handle))

◆ CLG_exit()

void CLG_exit ( )

Definition at line 880 of file clog.cc.

References CLG_ctx_free(), and g_ctx.

Referenced by _CLOG_ATTR_PRINTF_FORMAT(), callback_main_atexit(), main(), blender::bke::image::partial_update::ImagePartialUpdateTest::TearDown(), blender::io::obj::OBJMTLParserTest::TearDownTestCase(), BlendfileLoadingBaseTest::TearDownTestCase(), blender::animrig::nla::tests::NLASlottedActionTest::TearDownTestSuite(), blender::animrig::tests::ActionFCurveMoveTest::TearDownTestSuite(), blender::animrig::tests::ActionFilterTest::TearDownTestSuite(), blender::animrig::tests::ActionIteratorsTest::TearDownTestSuite(), blender::animrig::tests::ActionLayersTest::TearDownTestSuite(), blender::animrig::tests::ActionLegacyTest::TearDownTestSuite(), blender::animrig::tests::ActionQueryTest::TearDownTestSuite(), blender::animrig::tests::AnimationEvaluationTest::TearDownTestSuite(), blender::animrig::tests::AnimDrawTest::TearDownTestSuite(), blender::animrig::tests::KeyframingTest::TearDownTestSuite(), blender::animrig::tests::PoseTest::TearDownTestSuite(), blender::asset_system::tests::AssetLibraryServiceTest::TearDownTestSuite(), blender::asset_system::tests::AssetLibraryTest::TearDownTestSuite(), blender::asset_system::tests::AssetLibraryTestBase::TearDownTestSuite(), blender::bke::tests::ArmatureDeformTest::TearDownTestSuite(), blender::bke::tests::BMainTest::TearDownTestSuite(), blender::bke::tests::BPathTest::TearDownTestSuite(), blender::bke::tests::ImageTest::TearDownTestSuite(), blender::bke::tests::LibQueryTest::TearDownTestSuite(), blender::bke::tests::LibRemapTest::TearDownTestSuite(), blender::bke::tests::PaintBVHTest::TearDownTestSuite(), blender::bke::tests::SceneTest::TearDownTestSuite(), blender::ed::sculpt_paint::tests::MeshTests::TearDownTestSuite(), blender::ed::sculpt_paint::undo::tests::SculptUndoTest::TearDownTestSuite(), blender::editor::animation::tests::KeylistSummaryTest::TearDownTestSuite(), blender::geometry::tests::RealizeInstancesTest::TearDownTestSuite(), blender::gpu::GPUTest::TearDownTestSuite(), blender::interface::tests::CopyDriversToSelected::TearDownTestSuite(), blender::io::obj::OBJCurvesTest::TearDownTestSuite(), blender::nodes::tests::BundleTest::TearDownTestSuite(), blender::nodes::tests::NodeTest::TearDownTestSuite(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::io::obj::TEST(), and WM_exit_ex().

◆ CLG_fatal_fn_set()

void CLG_fatal_fn_set ( void(* fatal_fn )(void *file_handle))

Definition at line 915 of file clog.cc.

References CLG_ctx_fatal_fn_set(), CLogContext::fatal_fn, and g_ctx.

Referenced by _CLOG_ATTR_PRINTF_FORMAT(), and main().

◆ CLG_init()

void CLG_init ( )

Definition at line 873 of file clog.cc.

References clg_color_table_init(), CLG_ctx_init(), and g_ctx.

Referenced by _CLOG_ATTR_PRINTF_FORMAT(), main(), main(), blender::bke::image::partial_update::ImagePartialUpdateTest::SetUp(), blender::io::obj::OBJMTLParserTest::SetUpTestCase(), BlendfileLoadingBaseTest::SetUpTestCase(), blender::animrig::nla::tests::NLASlottedActionTest::SetUpTestSuite(), blender::animrig::tests::ActionFCurveMoveTest::SetUpTestSuite(), blender::animrig::tests::ActionFilterTest::SetUpTestSuite(), blender::animrig::tests::ActionIteratorsTest::SetUpTestSuite(), blender::animrig::tests::ActionLayersTest::SetUpTestSuite(), blender::animrig::tests::ActionLegacyTest::SetUpTestSuite(), blender::animrig::tests::ActionQueryTest::SetUpTestSuite(), blender::animrig::tests::AnimationEvaluationTest::SetUpTestSuite(), blender::animrig::tests::AnimDrawTest::SetUpTestSuite(), blender::animrig::tests::KeyframingTest::SetUpTestSuite(), blender::animrig::tests::PoseTest::SetUpTestSuite(), blender::asset_system::tests::AssetLibraryServiceTest::SetUpTestSuite(), blender::asset_system::tests::AssetLibraryTest::SetUpTestSuite(), blender::asset_system::tests::AssetLibraryTestBase::SetUpTestSuite(), blender::bke::tests::ArmatureDeformTest::SetUpTestSuite(), blender::bke::tests::BMainTest::SetUpTestSuite(), blender::bke::tests::BPathTest::SetUpTestSuite(), blender::bke::tests::ImageTest::SetUpTestSuite(), blender::bke::tests::LibQueryTest::SetUpTestSuite(), blender::bke::tests::LibRemapTest::SetUpTestSuite(), blender::bke::tests::PaintBVHTest::SetUpTestSuite(), blender::bke::tests::SceneTest::SetUpTestSuite(), blender::ed::sculpt_paint::tests::MeshTests::SetUpTestSuite(), blender::ed::sculpt_paint::undo::tests::SculptUndoTest::SetUpTestSuite(), blender::editor::animation::tests::KeylistSummaryTest::SetUpTestSuite(), blender::geometry::tests::RealizeInstancesTest::SetUpTestSuite(), blender::gpu::GPUTest::SetUpTestSuite(), blender::interface::tests::CopyDriversToSelected::SetUpTestSuite(), blender::io::obj::OBJCurvesTest::SetUpTestSuite(), blender::nodes::tests::BundleTest::SetUpTestSuite(), blender::nodes::tests::NodeTest::SetUpTestSuite(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), and blender::io::obj::TEST().

◆ clg_level_as_text()

const char * clg_level_as_text ( enum CLG_Level level)
static

Definition at line 321 of file clog.cc.

References CLG_LEVEL_DEBUG, CLG_LEVEL_ERROR, CLG_LEVEL_FATAL, CLG_LEVEL_INFO, CLG_LEVEL_TRACE, and CLG_LEVEL_WARN.

Referenced by write_level().

◆ CLG_level_set()

void CLG_level_set ( CLG_Level level)

Definition at line 935 of file clog.cc.

References CLG_ctx_level_set(), g_ctx, and CLogContext::level.

Referenced by _CLOG_ATTR_PRINTF_FORMAT(), arg_handle_log_level_set(), and main().

◆ clg_level_to_color()

enum eCLogColor clg_level_to_color ( enum CLG_Level level)
static

◆ CLG_log_raw()

void CLG_log_raw ( const CLG_LogType * lg,
const char * message )

◆ CLG_log_str()

◆ CLG_logf()

◆ CLG_logref_init()

◆ CLG_logref_list_all()

void CLG_logref_list_all ( void(* callback )(const char *identifier, void *user_data),
void * user_data )

Definition at line 969 of file clog.cc.

References b, clg_all_refs_p(), and CLG_LogRef::next.

Referenced by _CLOG_ATTR_PRINTF_FORMAT(), and arg_handle_list_clog_cats().

◆ CLG_logref_register()

void CLG_logref_register ( CLG_LogRef * clg_ref)

Definition at line 958 of file clog.cc.

References clg_all_refs_p(), lock, mutex, and CLG_LogRef::next.

Referenced by _CLOG_ATTR_PRINTF_FORMAT(), and CLG_LogRef::CLG_LogRef().

◆ CLG_output_set()

void CLG_output_set ( void * file_handle)

Definition at line 885 of file clog.cc.

References CLG_ctx_output_set(), and g_ctx.

Referenced by _CLOG_ATTR_PRINTF_FORMAT(), and arg_handle_log_file_set().

◆ CLG_output_use_basename_set()

void CLG_output_use_basename_set ( int value)

Definition at line 895 of file clog.cc.

References CLG_ctx_output_use_basename_set(), and g_ctx.

Referenced by _CLOG_ATTR_PRINTF_FORMAT(), main(), and main().

◆ CLG_output_use_memory_set()

void CLG_output_use_memory_set ( int value)

Definition at line 905 of file clog.cc.

References CLG_ctx_output_use_memory_set(), and g_ctx.

Referenced by _CLOG_ATTR_PRINTF_FORMAT(), arg_handle_log_show_memory_set(), and main().

◆ CLG_output_use_source_set()

void CLG_output_use_source_set ( int value)

Definition at line 890 of file clog.cc.

References CLG_ctx_output_use_source_set(), and g_ctx.

Referenced by _CLOG_ATTR_PRINTF_FORMAT(), arg_handle_log_show_source_set(), and main().

◆ CLG_output_use_timestamp_set()

void CLG_output_use_timestamp_set ( int value)

Definition at line 900 of file clog.cc.

References CLG_ctx_output_use_timestamp_set(), and g_ctx.

Referenced by _CLOG_ATTR_PRINTF_FORMAT(), and main().

◆ CLG_quiet_get()

◆ CLG_quiet_set()

◆ clg_str_append()

void clg_str_append ( CLogStringBuf * cstr,
const char * str )
static

Definition at line 190 of file clog.cc.

References clg_str_append_with_len(), and str.

Referenced by CLG_log_str(), CLG_logf(), write_file_line_fn(), and write_level().

◆ clg_str_append_char()

void clg_str_append_char ( CLogStringBuf * cstr,
const char c,
const uint len )
static

Definition at line 195 of file clog.cc.

References clg_str_reserve(), CLogStringBuf::data, CLogStringBuf::len, and len.

Referenced by write_memory(), and write_type().

◆ clg_str_append_with_len()

void clg_str_append_with_len ( CLogStringBuf * cstr,
const char * str,
const uint len )
static

◆ clg_str_free()

void clg_str_free ( CLogStringBuf * cstr)
static

Definition at line 152 of file clog.cc.

References CLogStringBuf::data, CLogStringBuf::is_alloc, and MEM_freeN().

Referenced by CLG_log_str(), and CLG_logf().

◆ clg_str_indent_multiline()

void clg_str_indent_multiline ( CLogStringBuf * cstr,
const uint indent_len )
static

◆ clg_str_init()

void clg_str_init ( CLogStringBuf * cstr,
char * buf_stack,
uint buf_stack_len )
static

◆ clg_str_reserve()

◆ clg_str_vappendf()

void clg_str_vappendf ( CLogStringBuf * cstr,
const char * format,
va_list args )
static

Definition at line 208 of file clog.cc.

References clg_str_reserve(), clg_str_vappendf(), and len_alloc.

Referenced by CLG_logf(), and clg_str_vappendf().

◆ clg_timestamp_ticks_get()

uint64_t clg_timestamp_ticks_get ( )
static

Definition at line 472 of file clog.cc.

Referenced by CLG_ctx_output_use_timestamp_set(), and write_timestamp().

◆ CLG_type_filter_exclude()

void CLG_type_filter_exclude ( const char * type_match,
int type_match_len )

Definition at line 925 of file clog.cc.

References CLG_ctx_type_filter_exclude(), and g_ctx.

Referenced by _CLOG_ATTR_PRINTF_FORMAT(), and arg_handle_log_set().

◆ CLG_type_filter_include()

void CLG_type_filter_include ( const char * type_match,
int type_match_len )

◆ CLT_ctx_error_fn_set()

void CLT_ctx_error_fn_set ( CLogContext * ctx,
void(* error_fn )(void *file_handle) )
static

Action on error level.

Definition at line 763 of file clog.cc.

References CLogContext::callbacks, and CLogContext::error_fn.

Referenced by CLG_error_fn_set().

◆ write_file_line_fn()

void write_file_line_fn ( CLogStringBuf * cstr,
const char * file_line,
const char * fn,
const bool use_basename,
const bool use_color )
static

◆ write_level()

void write_level ( CLogStringBuf * cstr,
enum CLG_Level level,
bool use_color )
static

◆ write_memory()

void write_memory ( CLogStringBuf * cstr)
static

Definition at line 508 of file clog.cc.

References clg_str_append_char(), clg_str_append_with_len(), len, MEM_get_memory_in_use, and mem_in_use.

Referenced by CLG_log_str(), and CLG_logf().

◆ write_timestamp()

void write_timestamp ( CLogStringBuf * cstr,
const uint64_t timestamp_tick_start )
static

Definition at line 491 of file clog.cc.

References clg_str_append_with_len(), and clg_timestamp_ticks_get().

Referenced by CLG_log_str(), and CLG_logf().

◆ write_type()

void write_type ( CLogStringBuf * cstr,
const CLG_LogType * lg )
static

Definition at line 540 of file clog.cc.

References clg_str_append_char(), clg_str_append_with_len(), CLG_LogType::identifier, and len.

Referenced by CLG_log_str(), and CLG_logf().

Variable Documentation

◆ clg_color_table

const char* clg_color_table[COLOR_LEN] = {nullptr}
static

Definition at line 301 of file clog.cc.

Referenced by clg_color_table_init(), write_file_line_fn(), and write_level().

◆ g_ctx

◆ g_quiet

bool g_quiet = false
static

Definition at line 871 of file clog.cc.

Referenced by CLG_quiet_get(), and CLG_quiet_set().

◆ LOG_MUTEX

std::mutex LOG_MUTEX
static

Definition at line 71 of file clog.cc.

Referenced by CLG_log_str(), and CLG_logf().