diff options
| author | Pablo Marcos Oltra <[email protected]> | 2018-07-26 21:57:45 +0200 |
|---|---|---|
| committer | Ahmad Fatoum <[email protected]> | 2018-07-26 21:57:45 +0200 |
| commit | c69f7953c79652c43ca56392d0df0bcf446da517 (patch) | |
| tree | d8e29fb07e20c3047757850b258fbea54f8e5bd4 /src/utils.c | |
| parent | 64e9d72c0705c211261dab9fc0dbf5e25b0b97f3 (diff) | |
| download | raylib-c69f7953c79652c43ca56392d0df0bcf446da517.tar.gz raylib-c69f7953c79652c43ca56392d0df0bcf446da517.zip | |
Add SetTraceLogCallback to enable users setting custom logging (#597)
Diffstat (limited to 'src/utils.c')
| -rw-r--r-- | src/utils.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/utils.c b/src/utils.c index 74780680..f7c19afb 100644 --- a/src/utils.c +++ b/src/utils.c @@ -74,6 +74,7 @@ FILE *funopen(const void *cookie, int (*readfn)(void *, char *, int), // Log types messages supported flags (bit based) static unsigned char logTypeFlags = LOG_INFO | LOG_WARNING | LOG_ERROR; +static TraceLogCallback logCallback = NULL; #if defined(PLATFORM_ANDROID) AAssetManager *assetManager; @@ -99,11 +100,26 @@ void SetTraceLog(unsigned char types) logTypeFlags = types; } +// Set a trace log callback to enable custom logging bypassing raylib's one +void SetTraceLogCallback(TraceLogCallback callback) +{ + logCallback = callback; +} + // Show trace log messages (LOG_INFO, LOG_WARNING, LOG_ERROR, LOG_DEBUG) void TraceLog(int msgType, const char *text, ...) { #if defined(SUPPORT_TRACELOG) static char buffer[128]; + va_list args; + va_start(args, text); + + if (logCallback) + { + logCallback(msgType, text, args); + va_end(args); + return; + } switch(msgType) { @@ -117,9 +133,6 @@ void TraceLog(int msgType, const char *text, ...) strcat(buffer, text); strcat(buffer, "\n"); - va_list args; - va_start(args, text); - #if defined(PLATFORM_ANDROID) switch(msgType) { |
