SDL 日志系统分析
2015-07-21 21:21
543 查看
日志分类
SDL日志具有下列分类日志分类 |
---|
SDL_LOG_CATEGORY_APPLICATION |
SDL_LOG_CATEGORY_ERROR |
SDL_LOG_CATEGORY_ASSERT |
SDL_LOG_CATEGORY_SYSTEM |
SDL_LOG_CATEGORY_AUDIO |
SDL_LOG_CATEGORY_VIDEO |
SDL_LOG_CATEGORY_RENDER |
SDL_LOG_CATEGORY_INPUT |
SDL_LOG_CATEGORY_TEST |
优选级 |
---|
SDL_LOG_PRIORITY_VERBOSE(低优先级) |
SDL_LOG_PRIORITY_DEBUG |
SDL_LOG_PRIORITY_INFO |
SDL_LOG_PRIORITY_WARN |
SDL_LOG_PRIORITY_ERROR |
SDL_LOG_PRIORITY_CRITICAL |
SDL_NUM_LOG_PRIORITIES(高优先级) |
void SDL_LogMessageV(int category, SDL_LogPriority priority, const char *fmt, va_list ap);
SDL日志有一系列的函数,它们具有不同的优选级。
void SDL_Log(SDL_PRINTF_FORMAT_STRING const char *fmt, ...); //对应SDL_LOG_PRIORITY_INFO优选级,分类为SDL_LOG_CATEGORY_APPLICATION
例如SDL_Log的优先级为SDL_LOG_PRIORITY_INFO,分类是SDL_LOG_CATEGORY_APPLICATION。
你可以设置SDL_LOG_CATEGORY_APPLICATION分类的输出优先级,仅当分类的输出优先级低于等于SDL_LOG_PRIORITY_INFO日志才会真正输出。默认SDL_LOG_CATEGORY_APPLICATION的优先级为SDL_LOG_PRIORITY_INFO,因此默认情况下SDL_Log是输出的。
类似的SDL还有下列日志函数
/* SDL_LogVerbose 优先级为SDL_LOG_PRIORITY_VERBOSE */ void SDL_LogVerbose(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...); /* SDL_LogVerbose 优先级为SDL_LOG_PRIORITY_DEBUG */ void SDL_LogDebug(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...); /* SDL_LogInfo 优先级为SDL_LOG_PRIORITY_INFO */ void SDL_LogInfo(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...); /* SDL_LogWarn优先级为SDL_LOG_PRIORITY_WARN */ void SDL_LogWarn(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...); /* SDL_LogError优先级为SDL_LOG_PRIORITY_ERROR */ void SDL_LogError(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...); /* SDL_LogCritical优先级为SDL_LOG_PRIORITY_CRITICAL */ void SDL_LogCritical(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...); void SDL_LogMessage(int category, SDL_LogPriority priority, SDL_PRINTF_FORMAT_STRING const char *fmt, ...);
因此下面的函数具有比上面的函数更加高优先输出的特性。
另外你可以使用设置函数来改变某种分类的优先级别
void SDL_LogSetPriority(int category, SDL_LogPriority priority);
SDL日志的输出也可以被重新定向,你可以使用下面的函数来取得和设置输出函数。
void SDL_LogGetOutputFunction(SDL_LogOutputFunction *callback, void **userdata); void SDL_LogSetOutputFunction(SDL_LogOutputFunction callback, void *userdata);
使用这两个函数你可以截获日志。
函数,可以将全部分类设置为相同的输出优先级。
void SDL_LogSetAllPriority(SDL_LogPriority priority);
相关文章推荐
- poj 2594 Treasure Exploration 最小路径覆盖/最大匹配
- 上海电信NTP服务器地址
- 实习日记八、JSTL
- HTML5动画形式装载图像
- 在交叉编译器中出现 “no such file or directory”
- JavaScript 事件绑定
- 黑马程序员——Java基础语法一
- DLNA它 Error, can't findlibavformat ! 解
- 栈
- OO’s Sequence
- Scala入门到精通——第五节 函数与闭包
- STA之Concepts (1)
- 开发第一个iOS项目 Hello iOS
- uva 1474(dp)
- POJ2186 USACO 2003 Fall Popular Cows(强联通分支)
- VS2010安装与环境配置
- 一天连十万字都读不到的人是没有出路的
- hdu 1061 Rightmost Digit
- storm如何保证at least once语义?
- WCM重启报数据库启动错误