写了一个简单的程序,但是考虑到有一些信息是需要打印在控制台上的,就像在windows上启动apache tomcat时控制台显示的信息一样。琢磨一会儿之后,对printf进行了封装,支持控制台打印日志,支持输出到文件里。不过控制台都是固定颜色的,不好看。于是在网上找了一下资料,printf还真支持输出不同的颜色,如下:
实例:printf("\033[1;33m Hello World. \033[0m \n");
\033 [1; 33m xxxx
| | | |
开始 背景色 字体色 字符串
一些常见的颜色代码:
none = "\033[0m"
black = "\033[0;30m"
dark_gray = "\033[1;30m"
blue = "\033[0;34m"
light_blue = "\033[1;34m"
green = "\033[0;32m"
light_green -= "\033[1;32m"
cyan = "\033[0;36m"
light_cyan = "\033[1;36m"
red = "\033[0;31m"
light_red = "\033[1;31m"
purple = "\033[0;35m"
light_purple = "\033[1;35m"
brown = "\033[0;33m"
yellow = "\033[1;33m"light_gray = "\033[0;37m"
white = "\033[1;37m"
点击打开链接 yanse
========================================
linux C宏定义实现打印调试信息
本文仅实现了三种宏定义调试
#define LOG(s) 日志显示(文件名:行号}+日志信息
#define ERROR(s) 错误信息位置(级别+文件名+函数名+行号+错误信息)
#define PrintArray2D(arr,m,n) 二维float数组按行列打印显示
实例:printf("\033[1;33m Hello World. \033[0m \n");
\033 [1; 33m xxxx
| | | |
开始 背景色 字体色 字符串
一些常见的颜色代码:
none = "\033[0m"
black = "\033[0;30m"
dark_gray = "\033[1;30m"
blue = "\033[0;34m"
light_blue = "\033[1;34m"
green = "\033[0;32m"
light_green -= "\033[1;32m"
cyan = "\033[0;36m"
light_cyan = "\033[1;36m"
red = "\033[0;31m"
light_red = "\033[1;31m"
purple = "\033[0;35m"
light_purple = "\033[1;35m"
brown = "\033[0;33m"
yellow = "\033[1;33m"light_gray = "\033[0;37m"
white = "\033[1;37m"
点击打开链接 yanse
========================================
linux C宏定义实现打印调试信息
本文仅实现了三种宏定义调试
#define LOG(s) 日志显示(文件名:行号}+日志信息
#define ERROR(s) 错误信息位置(级别+文件名+函数名+行号+错误信息)
#define PrintArray2D(arr,m,n) 二维float数组按行列打印显示
#include <stdio.h>
/**
* 简单打印调试信息
*/
#define DEBUG 1
#ifdef DEBUG
//日志显示(文件名:行号}+日期
#define LOG(s) printf("[%s:%d] %s\n", __FILE__, __LINE__, s)
//错误信息位置(级别+文件名+函数名+行号+错误信息)
#define ERROR(s) \
do{ \
fprintf(stderr, "[ERROR at:]%s %s(Line %d): %s\n",__FILE__,__FUNCTION__,__LINE__,s); \
}while(0)
//二维float数组打印显示
#define PrintArray2D(arr,m,n) \
do \
{ \
int i = 0; \
int j = 0; \
for(i=0;i<m;i++) \
{ \
for(j=0;j<n;j++) \
{ \
printf("%f ",arr[i][j]); \
} \
printf("\n"); \
} \
}while(0)
#else
//日志不显示
#define LOG(s) NULL
//二维float数组打印不显示
#define PrintArray2D(arr,m,n) NULL
//错误信息不显示
#define ERROR(s) NULL
#endif
点击打开链接