封装printf函数,让log可以打印文件名和行号
来源:互联网 发布:电脑桌面美化软件排行 编辑:程序博客网 时间:2024/04/30 06:53
///////////////////////////////////////////////////////////////////////////////
// Printf
\033[0m 關閉所有屬性
\033[1m 設置高亮度
\033[4m 下劃線
\033[5m 閃爍
\033[7m 反顯
\033[8m 消隱
\033[30m -- \033[37m 設置前景色
\033[40m -- \033[47m 設置背景色
\033[nA 光標上移n行
\033[nB 光標下移n行
\033[nC 光標右移n行
\033[nD 光標左移n行
\033[y;xH設置光標位置
\033[2J 清屏
\033[K 清除從光標到行尾的內容
\033[s 保存光標位置
\033[u 恢復光標位置
\033[?25l 隱藏光標
\033[?25h 顯示光標
///////////////////////////////////////////////////////////////////////////////
#define DBG_FG_BLACK "\033[30m" //改变输出字母的颜色 30~39用來設置字體色,40~49設置背景色
#define DBG_FG_RED "\033[31m"
#define DBG_FG_GREEN "\033[32m"
#define DBG_FG_YELLOW "\033[33m"
#define DBG_FG_BLUE "\033[34m"
#define DBG_FG_VIOLET "\033[35m"
#define DBG_FG_VIRDIAN "\033[36m"
#define DBG_FG_WHITE "\033[37m"
#define DBG_BG_BLACK "\033[40m"
#define DBG_BG_RED "\033[41m"
#define DBG_BG_GREEN "\033[42m"
#define DBG_BG_YELLOW "\033[43m"
#define DBG_BG_BLUE "\033[44m"
#define DBG_BG_VIOLET "\033[45m"
#define DBG_BG_VIRDIAN "\033[46m"
#define DBG_BG_WHITE "\033[47m"
#define DBG_END "\033[0m"
#define DBG_LEVEL_FATAL 1 //设置printf等级
#define DBG_LEVEL_MAJOR 2
#define DBG_LEVEL_WARNING 3
#define DBG_LEVEL_DEBUGGING 4
#define DBG_LEVEL_INFO 5
unsigned int g_embedded_cam_dbg_level = 1;
const char *g_szModuleName[] = {"FALCON", "V4L2", "AIT"};
const char *g_szLevelName[] = {"-", "Fatal", "Major", "Warning", "Debugging", "Info"};
void PrintDebug(unsigned int module, unsigned int level, const char *func, int line, const char* format, ...)
{
if (g_embedded_cam_dbg_level < level)
{
return;
}
char output[1024] = {0, };
if (level > 0)
{
snprintf(output, 1023, "[%s/%s] [%s:%d] %s", g_szModuleName[module], g_szLevelName[level],
func, line, (level == DBG_LEVEL_FATAL) ? DBG_FG_RED : "");
}
printf("%s", output);
va_list ap;
va_start(ap, format);
vprintf(format, ap);
va_end(ap);
printf("%s\n", (level == DBG_LEVEL_FATAL) ? DBG_END : "");
}
#define PrintCamFatal(args...) PrintDebug("FALCON", DBG_LEVEL_FATAL, __FUNCTION__, __LINE__, args);
#define PrintCamWarning(args...) PrintDebug("FALCON", DBG_LEVEL_WARNING, __FUNCTION__, __LINE__, args);
PrintCamFatal("ulDuration : %d ms", ulDuration);
PrintCamWarning("Language Pack Update Fail!");
// Printf
\033[0m 關閉所有屬性
\033[1m 設置高亮度
\033[4m 下劃線
\033[5m 閃爍
\033[7m 反顯
\033[8m 消隱
\033[30m -- \033[37m 設置前景色
\033[40m -- \033[47m 設置背景色
\033[nA 光標上移n行
\033[nB 光標下移n行
\033[nC 光標右移n行
\033[nD 光標左移n行
\033[y;xH設置光標位置
\033[2J 清屏
\033[K 清除從光標到行尾的內容
\033[s 保存光標位置
\033[u 恢復光標位置
\033[?25l 隱藏光標
\033[?25h 顯示光標
///////////////////////////////////////////////////////////////////////////////
#define DBG_FG_BLACK "\033[30m" //改变输出字母的颜色 30~39用來設置字體色,40~49設置背景色
#define DBG_FG_RED "\033[31m"
#define DBG_FG_GREEN "\033[32m"
#define DBG_FG_YELLOW "\033[33m"
#define DBG_FG_BLUE "\033[34m"
#define DBG_FG_VIOLET "\033[35m"
#define DBG_FG_VIRDIAN "\033[36m"
#define DBG_FG_WHITE "\033[37m"
#define DBG_BG_BLACK "\033[40m"
#define DBG_BG_RED "\033[41m"
#define DBG_BG_GREEN "\033[42m"
#define DBG_BG_YELLOW "\033[43m"
#define DBG_BG_BLUE "\033[44m"
#define DBG_BG_VIOLET "\033[45m"
#define DBG_BG_VIRDIAN "\033[46m"
#define DBG_BG_WHITE "\033[47m"
#define DBG_END "\033[0m"
#define DBG_LEVEL_FATAL 1 //设置printf等级
#define DBG_LEVEL_MAJOR 2
#define DBG_LEVEL_WARNING 3
#define DBG_LEVEL_DEBUGGING 4
#define DBG_LEVEL_INFO 5
unsigned int g_embedded_cam_dbg_level = 1;
const char *g_szModuleName[] = {"FALCON", "V4L2", "AIT"};
const char *g_szLevelName[] = {"-", "Fatal", "Major", "Warning", "Debugging", "Info"};
void PrintDebug(unsigned int module, unsigned int level, const char *func, int line, const char* format, ...)
{
if (g_embedded_cam_dbg_level < level)
{
return;
}
char output[1024] = {0, };
if (level > 0)
{
snprintf(output, 1023, "[%s/%s] [%s:%d] %s", g_szModuleName[module], g_szLevelName[level],
func, line, (level == DBG_LEVEL_FATAL) ? DBG_FG_RED : "");
}
printf("%s", output);
va_list ap;
va_start(ap, format);
vprintf(format, ap);
va_end(ap);
printf("%s\n", (level == DBG_LEVEL_FATAL) ? DBG_END : "");
}
#define PrintCamFatal(args...) PrintDebug("FALCON", DBG_LEVEL_FATAL, __FUNCTION__, __LINE__, args);
#define PrintCamWarning(args...) PrintDebug("FALCON", DBG_LEVEL_WARNING, __FUNCTION__, __LINE__, args);
PrintCamFatal("ulDuration : %d ms", ulDuration);
PrintCamWarning("Language Pack Update Fail!");
0 0
- 封装printf函数,让log可以打印文件名和行号
- printf 打印 文件名 函数名 行号
- printf Log打印封装
- 封装一个打印日期和行号的函数
- C语言 打印文件名,行号,函数名
- Java打印文件名、函数名、行号
- Android 打印文件名、函数名、行号
- Java打印文件名、函数名、行号
- 打印行号 文件名
- #define 宏函数实现printf打印log
- C/C++语言中如何使用宏打印行号、文件名和函数名
- 显示当前行号、文件名和函数名
- C++显示调用函数和行号文件名
- c语言日志封装-输出文件名、函数名、行号
- ios-调试程序打印详细信息 文件名 函数名 行号
- C/C++ 打印文件名、行号、函数名的方法
- ios-调试程序打印详细信息 文件名 函数名 行号
- 内核调试常会打印 文件名 函数名 行号
- 【SSH快速进阶】——struts2的模型驱动—ModelDriven
- 3D坦克大战游戏iOS源码
- MySQL Cluster导入数据表时报错:Got error 708 'No more attribute metadata records (increas
- VC 绘图,使用双缓冲技术实现
- 文件下载(仅作参考,因为是反编译过来的)
- 封装printf函数,让log可以打印文件名和行号
- Git与Repo入门
- HDU 1520 - Anniversary party(树形DP)
- STL中heap相关函数的用法:make_heap,push_heap,pop_heap...
- 17. Magento 重写控制器
- result_of SFINAE
- angular之$parse
- CentOS6.5安装mysql cluster7.3.7 搭建mysql数据库集群环境(双管理中心)
- MFC绘图不闪烁——双缓冲技术[转]