后台日志添加颜色

Posted yusq77

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了后台日志添加颜色相关的知识,希望对你有一定的参考价值。

后台日志不加颜色,当遇到问题很难发现,特别是出现段错误以及SQL错误,因此加上颜色进行级别区分很有必有。如图是没加颜色的日志。
技术图片

详细代码

代码块Highlight

//头文件
#include "color.h"
#include 

//日志定义
void SQLResult1(const char *color, const char *file, int line,  const char *format, ...)
{
    va_list ap;
    time_t timep;
    struct tm *p;
    char buf[2048];
    const char *basefile;

    time(&timep);
    p = localtime(&timep);
    sprintf(buf, "%s%02d-%02d-%02d %02d:%02d:%02d [%d]:%s:%d $ ",
        color, p->tm_year - 100, p->tm_mon + 1, p->tm_mday, p->tm_hour, p->tm_min, p->tm_sec,
        getpid() % 10000,file, line);
    va_start(ap, format);
    vsprintf(buf+strlen(buf), format, ap);
    va_end(ap);
    sprintf(buf+strlen(buf), "\\n%s", NONECOLOR);
    fprintf(stdout, "%s\\n", buf);
}

//进行简化格式
#define SQLRED(format, args...) SQLResult1(RED, __FILE__, __LINE__, format, ##args)   //RED 为红色,可以自定义更改
#define SQLYELLOW(format, args...) SQLResult1(YELLOW, __FILE__, __LINE__, format, ##args)   //YELLOW为红色,可以自定义更改

//使用示例
SQLRED("[sql error]: %s", sql);
SQLYELLOW("[sql error]: %s", sql);

        

结果截图

技术图片

参考

va_start

以上是关于后台日志添加颜色的主要内容,如果未能解决你的问题,请参考以下文章

替换或删除后台堆栈上现有片段的代码不起作用

glsl片段着色器颜色添加逻辑

添加到后台堆栈时如何保持片段状态?

添加到后台堆栈时如何维护片段状态?

MvvmCross Android 片段添加到后台堆栈

Android从后台堆栈中删除事务