SDL  2.0
SDL_log.c File Reference
#include "./SDL_internal.h"
#include "SDL_error.h"
#include "SDL_log.h"
+ Include dependency graph for SDL_log.c:

Go to the source code of this file.

Data Structures

struct  SDL_LogLevel
 

Macros

#define DEFAULT_PRIORITY   SDL_LOG_PRIORITY_CRITICAL
 
#define DEFAULT_ASSERT_PRIORITY   SDL_LOG_PRIORITY_WARN
 
#define DEFAULT_APPLICATION_PRIORITY   SDL_LOG_PRIORITY_INFO
 
#define DEFAULT_TEST_PRIORITY   SDL_LOG_PRIORITY_VERBOSE
 

Functions

static void SDL_LogOutput (void *userdata, int category, SDL_LogPriority priority, const char *message)
 
void SDL_LogSetAllPriority (SDL_LogPriority priority)
 Set the priority of all log categories. More...
 
void SDL_LogSetPriority (int category, SDL_LogPriority priority)
 Set the priority of a particular log category. More...
 
SDL_LogPriority SDL_LogGetPriority (int category)
 Get the priority of a particular log category. More...
 
void SDL_LogResetPriorities (void)
 Reset all priorities to default. More...
 
void SDL_Log (SDL_PRINTF_FORMAT_STRING const char *fmt,...)
 Log a message with SDL_LOG_CATEGORY_APPLICATION and SDL_LOG_PRIORITY_INFO. More...
 
void SDL_LogVerbose (int category, SDL_PRINTF_FORMAT_STRING const char *fmt,...)
 Log a message with SDL_LOG_PRIORITY_VERBOSE. More...
 
void SDL_LogDebug (int category, SDL_PRINTF_FORMAT_STRING const char *fmt,...)
 Log a message with SDL_LOG_PRIORITY_DEBUG. More...
 
void SDL_LogInfo (int category, SDL_PRINTF_FORMAT_STRING const char *fmt,...)
 Log a message with SDL_LOG_PRIORITY_INFO. More...
 
void SDL_LogWarn (int category, SDL_PRINTF_FORMAT_STRING const char *fmt,...)
 Log a message with SDL_LOG_PRIORITY_WARN. More...
 
void SDL_LogError (int category, SDL_PRINTF_FORMAT_STRING const char *fmt,...)
 Log a message with SDL_LOG_PRIORITY_ERROR. More...
 
void SDL_LogCritical (int category, SDL_PRINTF_FORMAT_STRING const char *fmt,...)
 Log a message with SDL_LOG_PRIORITY_CRITICAL. More...
 
void SDL_LogMessage (int category, SDL_LogPriority priority, SDL_PRINTF_FORMAT_STRING const char *fmt,...)
 Log a message with the specified category and priority. More...
 
void SDL_LogMessageV (int category, SDL_LogPriority priority, const char *fmt, va_list ap)
 Log a message with the specified category and priority. More...
 
void SDL_LogGetOutputFunction (SDL_LogOutputFunction *callback, void **userdata)
 Get the current log output function. More...
 
void SDL_LogSetOutputFunction (SDL_LogOutputFunction callback, void *userdata)
 This function allows you to replace the default log output function with one of your own. More...
 

Variables

static SDL_LogLevelSDL_loglevels
 
static SDL_LogPriority SDL_default_priority = DEFAULT_PRIORITY
 
static SDL_LogPriority SDL_assert_priority = DEFAULT_ASSERT_PRIORITY
 
static SDL_LogPriority SDL_application_priority = DEFAULT_APPLICATION_PRIORITY
 
static SDL_LogPriority SDL_test_priority = DEFAULT_TEST_PRIORITY
 
static SDL_LogOutputFunction SDL_log_function = SDL_LogOutput
 
static voidSDL_log_userdata = NULL
 
static const char * SDL_priority_prefixes [SDL_NUM_LOG_PRIORITIES]
 

Macro Definition Documentation

#define DEFAULT_APPLICATION_PRIORITY   SDL_LOG_PRIORITY_INFO

Definition at line 42 of file SDL_log.c.

Referenced by SDL_LogResetPriorities().

#define DEFAULT_ASSERT_PRIORITY   SDL_LOG_PRIORITY_WARN

Definition at line 41 of file SDL_log.c.

Referenced by SDL_LogResetPriorities().

#define DEFAULT_PRIORITY   SDL_LOG_PRIORITY_CRITICAL

Definition at line 40 of file SDL_log.c.

Referenced by SDL_LogResetPriorities().

#define DEFAULT_TEST_PRIORITY   SDL_LOG_PRIORITY_VERBOSE

Definition at line 43 of file SDL_log.c.

Referenced by SDL_LogResetPriorities().

Function Documentation

void SDL_Log ( SDL_PRINTF_FORMAT_STRING const char *  fmt,
  ... 
)

Log a message with SDL_LOG_CATEGORY_APPLICATION and SDL_LOG_PRIORITY_INFO.

Definition at line 173 of file SDL_log.c.

References SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO, and SDL_LogMessageV().

174 {
175  va_list ap;
176 
177  va_start(ap, fmt);
179  va_end(ap);
180 }
void SDL_LogMessageV(int category, SDL_LogPriority priority, const char *fmt, va_list ap)
Log a message with the specified category and priority.
Definition: SDL_log.c:267
void SDL_LogCritical ( int  category,
SDL_PRINTF_FORMAT_STRING const char *  fmt,
  ... 
)

Log a message with SDL_LOG_PRIORITY_CRITICAL.

Definition at line 233 of file SDL_log.c.

References SDL_LOG_PRIORITY_CRITICAL, and SDL_LogMessageV().

234 {
235  va_list ap;
236 
237  va_start(ap, fmt);
238  SDL_LogMessageV(category, SDL_LOG_PRIORITY_CRITICAL, fmt, ap);
239  va_end(ap);
240 }
void SDL_LogMessageV(int category, SDL_LogPriority priority, const char *fmt, va_list ap)
Log a message with the specified category and priority.
Definition: SDL_log.c:267
void SDL_LogDebug ( int  category,
SDL_PRINTF_FORMAT_STRING const char *  fmt,
  ... 
)

Log a message with SDL_LOG_PRIORITY_DEBUG.

Definition at line 193 of file SDL_log.c.

References SDL_LOG_PRIORITY_DEBUG, and SDL_LogMessageV().

194 {
195  va_list ap;
196 
197  va_start(ap, fmt);
198  SDL_LogMessageV(category, SDL_LOG_PRIORITY_DEBUG, fmt, ap);
199  va_end(ap);
200 }
void SDL_LogMessageV(int category, SDL_LogPriority priority, const char *fmt, va_list ap)
Log a message with the specified category and priority.
Definition: SDL_log.c:267
void SDL_LogError ( int  category,
SDL_PRINTF_FORMAT_STRING const char *  fmt,
  ... 
)

Log a message with SDL_LOG_PRIORITY_ERROR.

Definition at line 223 of file SDL_log.c.

References SDL_LOG_PRIORITY_ERROR, and SDL_LogMessageV().

224 {
225  va_list ap;
226 
227  va_start(ap, fmt);
228  SDL_LogMessageV(category, SDL_LOG_PRIORITY_ERROR, fmt, ap);
229  va_end(ap);
230 }
void SDL_LogMessageV(int category, SDL_LogPriority priority, const char *fmt, va_list ap)
Log a message with the specified category and priority.
Definition: SDL_log.c:267
void SDL_LogGetOutputFunction ( SDL_LogOutputFunction callback,
void **  userdata 
)

Get the current log output function.

Definition at line 423 of file SDL_log.c.

References SDL_log_function, and SDL_log_userdata.

424 {
425  if (callback) {
427  }
428  if (userdata) {
429  *userdata = SDL_log_userdata;
430  }
431 }
static SDL_LogOutputFunction SDL_log_function
Definition: SDL_log.c:62
static Uint32 callback(Uint32 interval, void *param)
Definition: testtimer.c:34
static void * SDL_log_userdata
Definition: SDL_log.c:63
SDL_LogPriority SDL_LogGetPriority ( int  category)

Get the priority of a particular log category.

Definition at line 134 of file SDL_log.c.

References SDL_LogLevel::category, SDL_LogLevel::next, SDL_LogLevel::priority, SDL_application_priority, SDL_assert_priority, SDL_default_priority, SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_CATEGORY_ASSERT, SDL_LOG_CATEGORY_TEST, and SDL_test_priority.

Referenced by SDL_LogMessageV().

135 {
136  SDL_LogLevel *entry;
137 
138  for (entry = SDL_loglevels; entry; entry = entry->next) {
139  if (entry->category == category) {
140  return entry->priority;
141  }
142  }
143 
144  if (category == SDL_LOG_CATEGORY_TEST) {
145  return SDL_test_priority;
146  } else if (category == SDL_LOG_CATEGORY_APPLICATION) {
148  } else if (category == SDL_LOG_CATEGORY_ASSERT) {
149  return SDL_assert_priority;
150  } else {
151  return SDL_default_priority;
152  }
153 }
static SDL_LogPriority SDL_test_priority
Definition: SDL_log.c:61
static SDL_LogLevel * SDL_loglevels
Definition: SDL_log.c:57
SDL_LogPriority priority
Definition: SDL_log.c:48
static SDL_LogPriority SDL_assert_priority
Definition: SDL_log.c:59
static SDL_LogPriority SDL_default_priority
Definition: SDL_log.c:58
int category
Definition: SDL_log.c:47
struct SDL_LogLevel * next
Definition: SDL_log.c:49
static SDL_LogPriority SDL_application_priority
Definition: SDL_log.c:60
void SDL_LogInfo ( int  category,
SDL_PRINTF_FORMAT_STRING const char *  fmt,
  ... 
)

Log a message with SDL_LOG_PRIORITY_INFO.

Definition at line 203 of file SDL_log.c.

References SDL_LOG_PRIORITY_INFO, and SDL_LogMessageV().

204 {
205  va_list ap;
206 
207  va_start(ap, fmt);
208  SDL_LogMessageV(category, SDL_LOG_PRIORITY_INFO, fmt, ap);
209  va_end(ap);
210 }
void SDL_LogMessageV(int category, SDL_LogPriority priority, const char *fmt, va_list ap)
Log a message with the specified category and priority.
Definition: SDL_log.c:267
void SDL_LogMessage ( int  category,
SDL_LogPriority  priority,
SDL_PRINTF_FORMAT_STRING const char *  fmt,
  ... 
)

Log a message with the specified category and priority.

Definition at line 243 of file SDL_log.c.

References SDL_LogLevel::category, SDL_LOG_CATEGORY_CUSTOM, SDL_LOG_CATEGORY_RESERVED1, and SDL_LogMessageV().

244 {
245  va_list ap;
246 
247  va_start(ap, fmt);
248  SDL_LogMessageV(category, priority, fmt, ap);
249  va_end(ap);
250 }
void SDL_LogMessageV(int category, SDL_LogPriority priority, const char *fmt, va_list ap)
Log a message with the specified category and priority.
Definition: SDL_log.c:267
void SDL_LogMessageV ( int  category,
SDL_LogPriority  priority,
const char *  fmt,
va_list  ap 
)

Log a message with the specified category and priority.

Definition at line 267 of file SDL_log.c.

References NULL, SDL_log_function, SDL_log_userdata, SDL_LogGetPriority(), SDL_MAX_LOG_MESSAGE, SDL_NUM_LOG_PRIORITIES, SDL_stack_alloc, SDL_stack_free, SDL_strlen, and SDL_vsnprintf.

Referenced by SDL_Log(), SDL_LogCritical(), SDL_LogDebug(), SDL_LogError(), SDL_LogInfo(), SDL_LogMessage(), SDL_LogVerbose(), and SDL_LogWarn().

268 {
269  char *message;
270  size_t len;
271 
272  /* Nothing to do if we don't have an output function */
273  if (!SDL_log_function) {
274  return;
275  }
276 
277  /* Make sure we don't exceed array bounds */
278  if ((int)priority < 0 || priority >= SDL_NUM_LOG_PRIORITIES) {
279  return;
280  }
281 
282  /* See if we want to do anything with this message */
283  if (priority < SDL_LogGetPriority(category)) {
284  return;
285  }
286 
287  message = SDL_stack_alloc(char, SDL_MAX_LOG_MESSAGE);
288  if (!message) {
289  return;
290  }
291 
292  SDL_vsnprintf(message, SDL_MAX_LOG_MESSAGE, fmt, ap);
293 
294  /* Chop off final endline. */
295  len = SDL_strlen(message);
296  if ((len > 0) && (message[len-1] == '\n')) {
297  message[--len] = '\0';
298  if ((len > 0) && (message[len-1] == '\r')) { /* catch "\r\n", too. */
299  message[--len] = '\0';
300  }
301  }
302 
303  SDL_log_function(SDL_log_userdata, category, priority, message);
304  SDL_stack_free(message);
305 }
#define SDL_MAX_LOG_MESSAGE
The maximum size of a log message.
Definition: SDL_log.h:54
GLuint GLsizei const GLchar * message
GLenum GLsizei len
#define SDL_vsnprintf
static SDL_LogOutputFunction SDL_log_function
Definition: SDL_log.c:62
#define SDL_stack_alloc(type, count)
Definition: SDL_stdinc.h:324
SDL_LogPriority SDL_LogGetPriority(int category)
Get the priority of a particular log category.
Definition: SDL_log.c:134
static void * SDL_log_userdata
Definition: SDL_log.c:63
#define SDL_strlen
#define SDL_stack_free(data)
Definition: SDL_stdinc.h:325
static void SDL_LogOutput ( void userdata,
int  category,
SDL_LogPriority  priority,
const char *  message 
)
static

Definition at line 316 of file SDL_log.c.

References NULL, sort_controllers::output, SDL_arraysize, SDL_free(), SDL_MAX_LOG_MESSAGE, SDL_priority_prefixes, SDL_snprintf, SDL_stack_alloc, SDL_stack_free, SDL_strlen, text, and WIN_UTF8ToString.

318 {
319 #if defined(__WIN32__) || defined(__WINRT__)
320  /* Way too many allocations here, urgh */
321  /* Note: One can't call SDL_SetError here, since that function itself logs. */
322  {
323  char *output;
324  size_t length;
325  LPTSTR tstr;
326 
327 #ifndef __WINRT__
328  BOOL attachResult;
329  DWORD attachError;
330  unsigned long charsWritten;
331 
332  /* Maybe attach console and get stderr handle */
333  if (consoleAttached == 0) {
334  attachResult = AttachConsole(ATTACH_PARENT_PROCESS);
335  if (!attachResult) {
336  attachError = GetLastError();
337  if (attachError == ERROR_INVALID_HANDLE) {
338  OutputDebugString(TEXT("Parent process has no console\r\n"));
339  consoleAttached = -1;
340  } else if (attachError == ERROR_GEN_FAILURE) {
341  OutputDebugString(TEXT("Could not attach to console of parent process\r\n"));
342  consoleAttached = -1;
343  } else if (attachError == ERROR_ACCESS_DENIED) {
344  /* Already attached */
345  consoleAttached = 1;
346  } else {
347  OutputDebugString(TEXT("Error attaching console\r\n"));
348  consoleAttached = -1;
349  }
350  } else {
351  /* Newly attached */
352  consoleAttached = 1;
353  }
354 
355  if (consoleAttached == 1) {
356  stderrHandle = GetStdHandle(STD_ERROR_HANDLE);
357  }
358  }
359 #endif /* ifndef __WINRT__ */
360 
361  length = SDL_strlen(SDL_priority_prefixes[priority]) + 2 + SDL_strlen(message) + 1 + 1 + 1;
362  output = SDL_stack_alloc(char, length);
363  SDL_snprintf(output, length, "%s: %s\r\n", SDL_priority_prefixes[priority], message);
364  tstr = WIN_UTF8ToString(output);
365 
366  /* Output to debugger */
367  OutputDebugString(tstr);
368 
369 #ifndef __WINRT__
370  /* Screen output to stderr, if console was attached. */
371  if (consoleAttached == 1) {
372  if (!WriteConsole(stderrHandle, tstr, lstrlen(tstr), &charsWritten, NULL)) {
373  OutputDebugString(TEXT("Error calling WriteConsole\r\n"));
374  if (GetLastError() == ERROR_NOT_ENOUGH_MEMORY) {
375  OutputDebugString(TEXT("Insufficient heap memory to write message\r\n"));
376  }
377  }
378  }
379 #endif /* ifndef __WINRT__ */
380 
381  SDL_free(tstr);
382  SDL_stack_free(output);
383  }
384 #elif defined(__ANDROID__)
385  {
386  char tag[32];
387 
388  SDL_snprintf(tag, SDL_arraysize(tag), "SDL/%s", GetCategoryPrefix(category));
389  __android_log_write(SDL_android_priority[priority], tag, message);
390  }
391 #elif defined(__APPLE__) && defined(SDL_VIDEO_DRIVER_COCOA)
392  /* Technically we don't need SDL_VIDEO_DRIVER_COCOA, but that's where this function is defined for now.
393  */
394  extern void SDL_NSLog(const char *text);
395  {
396  char *text;
397 
398  text = SDL_stack_alloc(char, SDL_MAX_LOG_MESSAGE);
399  if (text) {
400  SDL_snprintf(text, SDL_MAX_LOG_MESSAGE, "%s: %s", SDL_priority_prefixes[priority], message);
401  SDL_NSLog(text);
402  SDL_stack_free(text);
403  return;
404  }
405  }
406 #elif defined(__PSP__)
407  {
408  FILE* pFile;
409  pFile = fopen ("SDL_Log.txt", "a");
410  fprintf(pFile, "%s: %s\n", SDL_priority_prefixes[priority], message);
411  fclose (pFile);
412  }
413 #endif
414 #if HAVE_STDIO_H
415  fprintf(stderr, "%s: %s\n", SDL_priority_prefixes[priority], message);
416 #if __NACL__
417  fflush(stderr);
418 #endif
419 #endif
420 }
#define SDL_MAX_LOG_MESSAGE
The maximum size of a log message.
Definition: SDL_log.h:54
#define WIN_UTF8ToString(S)
Definition: SDL_windows.h:46
GLuint GLsizei const GLchar * message
static const char * SDL_priority_prefixes[SDL_NUM_LOG_PRIORITIES]
Definition: SDL_log.c:65
#define SDL_stack_alloc(type, count)
Definition: SDL_stdinc.h:324
void SDL_free(void *mem)
#define NULL
Definition: begin_code.h:143
static char text[MAX_TEXT_LENGTH]
Definition: testime.c:34
#define SDL_strlen
#define SDL_snprintf
#define SDL_arraysize(array)
Definition: SDL_stdinc.h:93
#define SDL_stack_free(data)
Definition: SDL_stdinc.h:325
GLuint GLsizei GLsizei * length
void SDL_LogResetPriorities ( void  )

Reset all priorities to default.

Note
This is called in SDL_Quit().

Definition at line 156 of file SDL_log.c.

References DEFAULT_APPLICATION_PRIORITY, DEFAULT_ASSERT_PRIORITY, DEFAULT_PRIORITY, DEFAULT_TEST_PRIORITY, SDL_LogLevel::next, SDL_application_priority, SDL_assert_priority, SDL_default_priority, SDL_free(), SDL_loglevels, and SDL_test_priority.

157 {
158  SDL_LogLevel *entry;
159 
160  while (SDL_loglevels) {
161  entry = SDL_loglevels;
162  SDL_loglevels = entry->next;
163  SDL_free(entry);
164  }
165 
170 }
#define DEFAULT_APPLICATION_PRIORITY
Definition: SDL_log.c:42
static SDL_LogPriority SDL_test_priority
Definition: SDL_log.c:61
static SDL_LogLevel * SDL_loglevels
Definition: SDL_log.c:57
#define DEFAULT_ASSERT_PRIORITY
Definition: SDL_log.c:41
static SDL_LogPriority SDL_assert_priority
Definition: SDL_log.c:59
static SDL_LogPriority SDL_default_priority
Definition: SDL_log.c:58
void SDL_free(void *mem)
struct SDL_LogLevel * next
Definition: SDL_log.c:49
#define DEFAULT_PRIORITY
Definition: SDL_log.c:40
static SDL_LogPriority SDL_application_priority
Definition: SDL_log.c:60
#define DEFAULT_TEST_PRIORITY
Definition: SDL_log.c:43
void SDL_LogSetAllPriority ( SDL_LogPriority  priority)

Set the priority of all log categories.

Definition at line 99 of file SDL_log.c.

References SDL_LogLevel::next, SDL_LogLevel::priority, SDL_application_priority, SDL_assert_priority, and SDL_default_priority.

100 {
101  SDL_LogLevel *entry;
102 
103  for (entry = SDL_loglevels; entry; entry = entry->next) {
104  entry->priority = priority;
105  }
106  SDL_default_priority = priority;
107  SDL_assert_priority = priority;
108  SDL_application_priority = priority;
109 }
static SDL_LogLevel * SDL_loglevels
Definition: SDL_log.c:57
SDL_LogPriority priority
Definition: SDL_log.c:48
static SDL_LogPriority SDL_assert_priority
Definition: SDL_log.c:59
static SDL_LogPriority SDL_default_priority
Definition: SDL_log.c:58
struct SDL_LogLevel * next
Definition: SDL_log.c:49
static SDL_LogPriority SDL_application_priority
Definition: SDL_log.c:60
void SDL_LogSetOutputFunction ( SDL_LogOutputFunction  callback,
void userdata 
)

This function allows you to replace the default log output function with one of your own.

Definition at line 434 of file SDL_log.c.

References callback(), SDL_log_function, and SDL_log_userdata.

435 {
437  SDL_log_userdata = userdata;
438 }
static SDL_LogOutputFunction SDL_log_function
Definition: SDL_log.c:62
static Uint32 callback(Uint32 interval, void *param)
Definition: testtimer.c:34
static void * SDL_log_userdata
Definition: SDL_log.c:63
void SDL_LogSetPriority ( int  category,
SDL_LogPriority  priority 
)

Set the priority of a particular log category.

Definition at line 112 of file SDL_log.c.

References SDL_LogLevel::category, SDL_LogLevel::next, SDL_LogLevel::priority, SDL_loglevels, and SDL_malloc.

113 {
114  SDL_LogLevel *entry;
115 
116  for (entry = SDL_loglevels; entry; entry = entry->next) {
117  if (entry->category == category) {
118  entry->priority = priority;
119  return;
120  }
121  }
122 
123  /* Create a new entry */
124  entry = (SDL_LogLevel *)SDL_malloc(sizeof(*entry));
125  if (entry) {
126  entry->category = category;
127  entry->priority = priority;
128  entry->next = SDL_loglevels;
129  SDL_loglevels = entry;
130  }
131 }
static SDL_LogLevel * SDL_loglevels
Definition: SDL_log.c:57
SDL_LogPriority priority
Definition: SDL_log.c:48
int category
Definition: SDL_log.c:47
struct SDL_LogLevel * next
Definition: SDL_log.c:49
#define SDL_malloc
void SDL_LogVerbose ( int  category,
SDL_PRINTF_FORMAT_STRING const char *  fmt,
  ... 
)

Log a message with SDL_LOG_PRIORITY_VERBOSE.

Definition at line 183 of file SDL_log.c.

References SDL_LOG_PRIORITY_VERBOSE, and SDL_LogMessageV().

184 {
185  va_list ap;
186 
187  va_start(ap, fmt);
188  SDL_LogMessageV(category, SDL_LOG_PRIORITY_VERBOSE, fmt, ap);
189  va_end(ap);
190 }
void SDL_LogMessageV(int category, SDL_LogPriority priority, const char *fmt, va_list ap)
Log a message with the specified category and priority.
Definition: SDL_log.c:267
void SDL_LogWarn ( int  category,
SDL_PRINTF_FORMAT_STRING const char *  fmt,
  ... 
)

Log a message with SDL_LOG_PRIORITY_WARN.

Definition at line 213 of file SDL_log.c.

References SDL_LOG_PRIORITY_WARN, and SDL_LogMessageV().

214 {
215  va_list ap;
216 
217  va_start(ap, fmt);
218  SDL_LogMessageV(category, SDL_LOG_PRIORITY_WARN, fmt, ap);
219  va_end(ap);
220 }
void SDL_LogMessageV(int category, SDL_LogPriority priority, const char *fmt, va_list ap)
Log a message with the specified category and priority.
Definition: SDL_log.c:267

Variable Documentation

SDL_LogPriority SDL_application_priority = DEFAULT_APPLICATION_PRIORITY
static

Definition at line 60 of file SDL_log.c.

Referenced by SDL_LogGetPriority(), SDL_LogResetPriorities(), and SDL_LogSetAllPriority().

SDL_LogPriority SDL_assert_priority = DEFAULT_ASSERT_PRIORITY
static

Definition at line 59 of file SDL_log.c.

Referenced by SDL_LogGetPriority(), SDL_LogResetPriorities(), and SDL_LogSetAllPriority().

SDL_LogPriority SDL_default_priority = DEFAULT_PRIORITY
static

Definition at line 58 of file SDL_log.c.

Referenced by SDL_LogGetPriority(), SDL_LogResetPriorities(), and SDL_LogSetAllPriority().

SDL_LogOutputFunction SDL_log_function = SDL_LogOutput
static

Definition at line 62 of file SDL_log.c.

Referenced by SDL_LogGetOutputFunction(), SDL_LogMessageV(), and SDL_LogSetOutputFunction().

void* SDL_log_userdata = NULL
static

Definition at line 63 of file SDL_log.c.

Referenced by SDL_LogGetOutputFunction(), SDL_LogMessageV(), and SDL_LogSetOutputFunction().

SDL_LogLevel* SDL_loglevels
static

Definition at line 57 of file SDL_log.c.

Referenced by SDL_LogResetPriorities(), and SDL_LogSetPriority().

const char* SDL_priority_prefixes[SDL_NUM_LOG_PRIORITIES]
static
Initial value:
= {
"VERBOSE",
"DEBUG",
"INFO",
"WARN",
"ERROR",
"CRITICAL"
}
#define NULL
Definition: begin_code.h:143

Definition at line 65 of file SDL_log.c.

Referenced by SDL_LogOutput().

SDL_LogPriority SDL_test_priority = DEFAULT_TEST_PRIORITY
static

Definition at line 61 of file SDL_log.c.

Referenced by SDL_LogGetPriority(), and SDL_LogResetPriorities().