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

◆ DEFAULT_APPLICATION_PRIORITY

#define DEFAULT_APPLICATION_PRIORITY   SDL_LOG_PRIORITY_INFO

Definition at line 42 of file SDL_log.c.

Referenced by SDL_LogResetPriorities().

◆ DEFAULT_ASSERT_PRIORITY

#define DEFAULT_ASSERT_PRIORITY   SDL_LOG_PRIORITY_WARN

Definition at line 41 of file SDL_log.c.

Referenced by SDL_LogResetPriorities().

◆ DEFAULT_PRIORITY

#define DEFAULT_PRIORITY   SDL_LOG_PRIORITY_CRITICAL

Definition at line 40 of file SDL_log.c.

Referenced by SDL_LogResetPriorities().

◆ DEFAULT_TEST_PRIORITY

#define DEFAULT_TEST_PRIORITY   SDL_LOG_PRIORITY_VERBOSE

Definition at line 43 of file SDL_log.c.

Referenced by SDL_LogResetPriorities().

Function Documentation

◆ SDL_Log()

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 171 of file SDL_log.c.

References SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO, and SDL_LogMessageV().

172 {
173  va_list ap;
174 
175  va_start(ap, fmt);
177  va_end(ap);
178 }
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:265

◆ SDL_LogCritical()

void SDL_LogCritical ( int  category,
SDL_PRINTF_FORMAT_STRING const char *  fmt,
  ... 
)

Log a message with SDL_LOG_PRIORITY_CRITICAL.

Definition at line 231 of file SDL_log.c.

References SDL_LOG_PRIORITY_CRITICAL, and SDL_LogMessageV().

232 {
233  va_list ap;
234 
235  va_start(ap, fmt);
236  SDL_LogMessageV(category, SDL_LOG_PRIORITY_CRITICAL, fmt, ap);
237  va_end(ap);
238 }
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:265

◆ SDL_LogDebug()

void SDL_LogDebug ( int  category,
SDL_PRINTF_FORMAT_STRING const char *  fmt,
  ... 
)

Log a message with SDL_LOG_PRIORITY_DEBUG.

Definition at line 191 of file SDL_log.c.

References SDL_LOG_PRIORITY_DEBUG, and SDL_LogMessageV().

192 {
193  va_list ap;
194 
195  va_start(ap, fmt);
196  SDL_LogMessageV(category, SDL_LOG_PRIORITY_DEBUG, fmt, ap);
197  va_end(ap);
198 }
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:265

◆ SDL_LogError()

void SDL_LogError ( int  category,
SDL_PRINTF_FORMAT_STRING const char *  fmt,
  ... 
)

Log a message with SDL_LOG_PRIORITY_ERROR.

Definition at line 221 of file SDL_log.c.

References SDL_LOG_PRIORITY_ERROR, and SDL_LogMessageV().

222 {
223  va_list ap;
224 
225  va_start(ap, fmt);
226  SDL_LogMessageV(category, SDL_LOG_PRIORITY_ERROR, fmt, ap);
227  va_end(ap);
228 }
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:265

◆ SDL_LogGetOutputFunction()

void SDL_LogGetOutputFunction ( SDL_LogOutputFunction callback,
void **  userdata 
)

Get the current log output function.

Definition at line 433 of file SDL_log.c.

References SDL_log_function, and SDL_log_userdata.

434 {
435  if (callback) {
437  }
438  if (userdata) {
439  *userdata = SDL_log_userdata;
440  }
441 }
static SDL_LogOutputFunction SDL_log_function
Definition: SDL_log.c:60
static Uint32 callback(Uint32 interval, void *param)
Definition: testtimer.c:34
static void * SDL_log_userdata
Definition: SDL_log.c:61

◆ SDL_LogGetPriority()

SDL_LogPriority SDL_LogGetPriority ( int  category)

Get the priority of a particular log category.

Definition at line 132 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().

133 {
134  SDL_LogLevel *entry;
135 
136  for (entry = SDL_loglevels; entry; entry = entry->next) {
137  if (entry->category == category) {
138  return entry->priority;
139  }
140  }
141 
142  if (category == SDL_LOG_CATEGORY_TEST) {
143  return SDL_test_priority;
144  } else if (category == SDL_LOG_CATEGORY_APPLICATION) {
146  } else if (category == SDL_LOG_CATEGORY_ASSERT) {
147  return SDL_assert_priority;
148  } else {
149  return SDL_default_priority;
150  }
151 }
static SDL_LogPriority SDL_test_priority
Definition: SDL_log.c:59
static SDL_LogLevel * SDL_loglevels
Definition: SDL_log.c:55
SDL_LogPriority priority
Definition: SDL_log.c:48
static SDL_LogPriority SDL_assert_priority
Definition: SDL_log.c:57
static SDL_LogPriority SDL_default_priority
Definition: SDL_log.c:56
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:58

◆ SDL_LogInfo()

void SDL_LogInfo ( int  category,
SDL_PRINTF_FORMAT_STRING const char *  fmt,
  ... 
)

Log a message with SDL_LOG_PRIORITY_INFO.

Definition at line 201 of file SDL_log.c.

References SDL_LOG_PRIORITY_INFO, and SDL_LogMessageV().

202 {
203  va_list ap;
204 
205  va_start(ap, fmt);
206  SDL_LogMessageV(category, SDL_LOG_PRIORITY_INFO, fmt, ap);
207  va_end(ap);
208 }
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:265

◆ SDL_LogMessage()

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 241 of file SDL_log.c.

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

242 {
243  va_list ap;
244 
245  va_start(ap, fmt);
246  SDL_LogMessageV(category, priority, fmt, ap);
247  va_end(ap);
248 }
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:265

◆ SDL_LogMessageV()

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 265 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, SDL_vsnprintf, and SDLCALL.

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

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

◆ SDL_LogOutput()

static void SDL_LogOutput ( void userdata,
int  category,
SDL_LogPriority  priority,
const char *  message 
)
static

Definition at line 314 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.

316 {
317 #if defined(__WIN32__) || defined(__WINRT__)
318  /* Way too many allocations here, urgh */
319  /* Note: One can't call SDL_SetError here, since that function itself logs. */
320  {
321  char *output;
322  size_t length;
323  LPTSTR tstr;
324 
325 #if !defined(HAVE_STDIO_H) && !defined(__WINRT__)
326  BOOL attachResult;
327  DWORD attachError;
328  unsigned long charsWritten;
329  DWORD consoleMode;
330 
331  /* Maybe attach console and get stderr handle */
332  if (consoleAttached == 0) {
333  attachResult = AttachConsole(ATTACH_PARENT_PROCESS);
334  if (!attachResult) {
335  attachError = GetLastError();
336  if (attachError == ERROR_INVALID_HANDLE) {
337  /* This is expected when running from Visual Studio */
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  if (GetConsoleMode(stderrHandle, &consoleMode) == 0) {
359  /* WriteConsole fails if the output is redirected to a file. Must use WriteFile instead. */
360  consoleAttached = 2;
361  }
362  }
363  }
364 #endif /* !defined(HAVE_STDIO_H) && !defined(__WINRT__) */
365 
366  length = SDL_strlen(SDL_priority_prefixes[priority]) + 2 + SDL_strlen(message) + 1 + 1 + 1;
367  output = SDL_stack_alloc(char, length);
368  SDL_snprintf(output, length, "%s: %s\r\n", SDL_priority_prefixes[priority], message);
369  tstr = WIN_UTF8ToString(output);
370 
371  /* Output to debugger */
372  OutputDebugString(tstr);
373 
374 #if !defined(HAVE_STDIO_H) && !defined(__WINRT__)
375  /* Screen output to stderr, if console was attached. */
376  if (consoleAttached == 1) {
377  if (!WriteConsole(stderrHandle, tstr, lstrlen(tstr), &charsWritten, NULL)) {
378  OutputDebugString(TEXT("Error calling WriteConsole\r\n"));
379  if (GetLastError() == ERROR_NOT_ENOUGH_MEMORY) {
380  OutputDebugString(TEXT("Insufficient heap memory to write message\r\n"));
381  }
382  }
383 
384  } else if (consoleAttached == 2) {
385  if (!WriteFile(stderrHandle, output, lstrlenA(output), &charsWritten, NULL)) {
386  OutputDebugString(TEXT("Error calling WriteFile\r\n"));
387  }
388  }
389 #endif /* !defined(HAVE_STDIO_H) && !defined(__WINRT__) */
390 
391  SDL_free(tstr);
392  SDL_stack_free(output);
393  }
394 #elif defined(__ANDROID__)
395  {
396  char tag[32];
397 
398  SDL_snprintf(tag, SDL_arraysize(tag), "SDL/%s", GetCategoryPrefix(category));
399  __android_log_write(SDL_android_priority[priority], tag, message);
400  }
401 #elif defined(__APPLE__) && defined(SDL_VIDEO_DRIVER_COCOA)
402  /* Technically we don't need SDL_VIDEO_DRIVER_COCOA, but that's where this function is defined for now.
403  */
404  extern void SDL_NSLog(const char *text);
405  {
406  char *text;
407 
408  text = SDL_stack_alloc(char, SDL_MAX_LOG_MESSAGE);
409  if (text) {
410  SDL_snprintf(text, SDL_MAX_LOG_MESSAGE, "%s: %s", SDL_priority_prefixes[priority], message);
411  SDL_NSLog(text);
412  SDL_stack_free(text);
413  return;
414  }
415  }
416 #elif defined(__PSP__)
417  {
418  FILE* pFile;
419  pFile = fopen ("SDL_Log.txt", "a");
420  fprintf(pFile, "%s: %s\n", SDL_priority_prefixes[priority], message);
421  fclose (pFile);
422  }
423 #endif
424 #if HAVE_STDIO_H
425  fprintf(stderr, "%s: %s\n", SDL_priority_prefixes[priority], message);
426 #if __NACL__
427  fflush(stderr);
428 #endif
429 #endif
430 }
#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:47
GLuint GLsizei const GLchar * message
static const char * SDL_priority_prefixes[SDL_NUM_LOG_PRIORITIES]
Definition: SDL_log.c:63
#define SDL_free
#define SDL_stack_alloc(type, count)
Definition: SDL_stdinc.h:354
#define NULL
Definition: begin_code.h:164
static char text[MAX_TEXT_LENGTH]
Definition: testime.c:47
#define SDL_strlen
#define SDL_snprintf
#define SDL_arraysize(array)
Definition: SDL_stdinc.h:93
#define SDL_stack_free(data)
Definition: SDL_stdinc.h:355
GLuint GLsizei GLsizei * length

◆ SDL_LogResetPriorities()

void SDL_LogResetPriorities ( void  )

Reset all priorities to default.

Note
This is called in SDL_Quit().

Definition at line 154 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.

155 {
156  SDL_LogLevel *entry;
157 
158  while (SDL_loglevels) {
159  entry = SDL_loglevels;
160  SDL_loglevels = entry->next;
161  SDL_free(entry);
162  }
163 
168 }
#define DEFAULT_APPLICATION_PRIORITY
Definition: SDL_log.c:42
static SDL_LogPriority SDL_test_priority
Definition: SDL_log.c:59
static SDL_LogLevel * SDL_loglevels
Definition: SDL_log.c:55
#define DEFAULT_ASSERT_PRIORITY
Definition: SDL_log.c:41
static SDL_LogPriority SDL_assert_priority
Definition: SDL_log.c:57
static SDL_LogPriority SDL_default_priority
Definition: SDL_log.c:56
#define SDL_free
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:58
#define DEFAULT_TEST_PRIORITY
Definition: SDL_log.c:43

◆ SDL_LogSetAllPriority()

void SDL_LogSetAllPriority ( SDL_LogPriority  priority)

Set the priority of all log categories.

Definition at line 97 of file SDL_log.c.

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

98 {
99  SDL_LogLevel *entry;
100 
101  for (entry = SDL_loglevels; entry; entry = entry->next) {
102  entry->priority = priority;
103  }
104  SDL_default_priority = priority;
105  SDL_assert_priority = priority;
106  SDL_application_priority = priority;
107 }
static SDL_LogLevel * SDL_loglevels
Definition: SDL_log.c:55
SDL_LogPriority priority
Definition: SDL_log.c:48
static SDL_LogPriority SDL_assert_priority
Definition: SDL_log.c:57
static SDL_LogPriority SDL_default_priority
Definition: SDL_log.c:56
struct SDL_LogLevel * next
Definition: SDL_log.c:49
static SDL_LogPriority SDL_application_priority
Definition: SDL_log.c:58

◆ SDL_LogSetOutputFunction()

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 444 of file SDL_log.c.

References callback(), SDL_log_function, and SDL_log_userdata.

445 {
447  SDL_log_userdata = userdata;
448 }
static SDL_LogOutputFunction SDL_log_function
Definition: SDL_log.c:60
static Uint32 callback(Uint32 interval, void *param)
Definition: testtimer.c:34
static void * SDL_log_userdata
Definition: SDL_log.c:61

◆ SDL_LogSetPriority()

void SDL_LogSetPriority ( int  category,
SDL_LogPriority  priority 
)

Set the priority of a particular log category.

Definition at line 110 of file SDL_log.c.

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

111 {
112  SDL_LogLevel *entry;
113 
114  for (entry = SDL_loglevels; entry; entry = entry->next) {
115  if (entry->category == category) {
116  entry->priority = priority;
117  return;
118  }
119  }
120 
121  /* Create a new entry */
122  entry = (SDL_LogLevel *)SDL_malloc(sizeof(*entry));
123  if (entry) {
124  entry->category = category;
125  entry->priority = priority;
126  entry->next = SDL_loglevels;
127  SDL_loglevels = entry;
128  }
129 }
static SDL_LogLevel * SDL_loglevels
Definition: SDL_log.c:55
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

◆ SDL_LogVerbose()

void SDL_LogVerbose ( int  category,
SDL_PRINTF_FORMAT_STRING const char *  fmt,
  ... 
)

Log a message with SDL_LOG_PRIORITY_VERBOSE.

Definition at line 181 of file SDL_log.c.

References SDL_LOG_PRIORITY_VERBOSE, and SDL_LogMessageV().

182 {
183  va_list ap;
184 
185  va_start(ap, fmt);
186  SDL_LogMessageV(category, SDL_LOG_PRIORITY_VERBOSE, fmt, ap);
187  va_end(ap);
188 }
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:265

◆ SDL_LogWarn()

void SDL_LogWarn ( int  category,
SDL_PRINTF_FORMAT_STRING const char *  fmt,
  ... 
)

Log a message with SDL_LOG_PRIORITY_WARN.

Definition at line 211 of file SDL_log.c.

References SDL_LOG_PRIORITY_WARN, and SDL_LogMessageV().

212 {
213  va_list ap;
214 
215  va_start(ap, fmt);
216  SDL_LogMessageV(category, SDL_LOG_PRIORITY_WARN, fmt, ap);
217  va_end(ap);
218 }
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:265

Variable Documentation

◆ SDL_application_priority

SDL_LogPriority SDL_application_priority = DEFAULT_APPLICATION_PRIORITY
static

Definition at line 58 of file SDL_log.c.

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

◆ SDL_assert_priority

SDL_LogPriority SDL_assert_priority = DEFAULT_ASSERT_PRIORITY
static

Definition at line 57 of file SDL_log.c.

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

◆ SDL_default_priority

SDL_LogPriority SDL_default_priority = DEFAULT_PRIORITY
static

Definition at line 56 of file SDL_log.c.

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

◆ SDL_log_function

SDL_LogOutputFunction SDL_log_function = SDL_LogOutput
static

Definition at line 60 of file SDL_log.c.

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

◆ SDL_log_userdata

void* SDL_log_userdata = NULL
static

Definition at line 61 of file SDL_log.c.

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

◆ SDL_loglevels

SDL_LogLevel* SDL_loglevels
static

Definition at line 55 of file SDL_log.c.

Referenced by SDL_LogResetPriorities(), and SDL_LogSetPriority().

◆ SDL_priority_prefixes

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

Definition at line 63 of file SDL_log.c.

Referenced by SDL_LogOutput().

◆ SDL_test_priority

SDL_LogPriority SDL_test_priority = DEFAULT_TEST_PRIORITY
static

Definition at line 59 of file SDL_log.c.

Referenced by SDL_LogGetPriority(), and SDL_LogResetPriorities().