/*----------------------------------------------------------------------*/

/*              Debug for embeded board, 2008-2-26, Rain.               */

/*----------------------------------------------------------------------*/

#define  PRINT_DEBUG    1

#define  UNDERLINE              "\033[4m"

#define  BLACK                  "\033[30m"

#define  RED                    "\033[31m"

#define  GREEN                  "\033[32m"

#define  YELLOW                 "\033[33m"

#define  BLUE                   "\033[34m"

#define  PURPLE                 "\033[35m"

#define  DARKGREEN              "\033[36m"

#define  WHITE                  "\033[37m"

#define  BG_BLACK               "\033[40m"

#define  BG_RED                 "\033[41m"

#define  BG_GREEN               "\033[42m"

#define  BG_YELLOW              "\033[43m"

#define  BG_BLUE                "\033[44m"

#define  BG_PURPLE              "\033[45m"

#define  BG_DARKGREEN           "\033[46m"

#define  BG_WHITE               "\033[47m"

#define  CLOSE                  "\033[0m"

#define cprintf(fmt, args...) do            \

{                                               \

    FILE *fp1 = fopen("/dev/tty", "a"); \

    FILE *fp2 = fopen("/tmp/dbg.txt", "a"); \

    int  flag = 0;                          \

    if (fp1 && (flag == 0 || flag == 2)) {  \

        fprintf(fp1, fmt, ## args);     \

        fclose(fp1);                    \

    }                                       \

    if (fp2 && (flag == 1 || flag == 2)) {  \

        fprintf(fp2, fmt, ## args);     \

        fclose(fp2);                    \

    } \

} while (0)



#ifdef  PRINT_DEBUG

#define dbg(fmt, args...)    \

    cprintf("==> CGI_DEBUG %s | %s %d | " fmt CLOSE, __FILE__, __FUNCTION__, __LINE__, ##args)

#else

#define dbg(fmt, args...)

#endif

/*----------------------------------------------------------------------*/



/*----------------------------------------------------------------------*/

/*              Debug for SSH terminal, 2008-2-26, Rain.                */

/*----------------------------------------------------------------------*/

#define  PRINT_DEBUG    1

#define  UNDERLINE              "\033[4m"

#define  BLACK                  "\033[30m"

#define  RED                    "\033[31m"

#define  GREEN                  "\033[32m"

#define  YELLOW                 "\033[33m"

#define  BLUE                   "\033[34m"

#define  PURPLE                 "\033[35m"

#define  DARKGREEN              "\033[36m"

#define  WHITE                  "\033[37m"

#define  BG_BLACK               "\033[40m"

#define  BG_RED                 "\033[41m"

#define  BG_GREEN               "\033[42m"

#define  BG_YELLOW              "\033[43m"

#define  BG_BLUE                "\033[44m"

#define  BG_PURPLE              "\033[45m"

#define  BG_DARKGREEN           "\033[46m"

#define  BG_WHITE               "\033[47m"

#define  CLOSE                  "\033[0m"

#define cprintf(fmt, args...) do            \

{                                               \

    char *dev = getenv("SSH_TTY");          \

    FILE *fp1 = fopen(dev, "a");            \

    FILE *fp2 = fopen("/tmp/dbg.txt", "a"); \

    int  flag = 0;                          \

    if (fp1 && (flag == 0 || flag == 2)) {  \

        fprintf(fp1, fmt, ## args);     \

        fclose(fp1);                    \

    }                                       \

    if (fp2 && (flag == 1 || flag == 2)) {  \

        fprintf(fp2, fmt, ## args);     \

        fclose(fp2);                    \

    } \

} while (0)



#ifdef  PRINT_DEBUG

#define dbg(fmt, args...)    \

    cprintf("==> CGI_DEBUG %s | %s %d | " fmt CLOSE, __FILE__, __FUNCTION__, __LINE__, ##args)

#else

#define dbg(fmt, args...)

#endif

/*----------------------------------------------------------------------*/

print to console or file的更多相关文章

  1. Log4J是Apache组织的开源一个开源项目,通过Log4J,可以指定日志信息输出的目的地,如console、file等。Log4J采用日志级别机制,请按照输出级别由低到高的顺序写出日志输出级别。

    Log4J是Apache组织的开源一个开源项目,通过Log4J,可以指定日志信息输出的目的地,如console.file等.Log4J采用日志级别机制,请按照输出级别由低到高的顺序写出日志输出级别. ...

  2. Python3 print()函数sep,end,file参数用法练习

    来自builtins.py:def print(self, *args, sep=' ', end='\n', file=None): # known special case of print &q ...

  3. Perl Print Win32 Console Windows 控制台 print Unicode 问题

    参考资料: https://stackoverflow.com/questions/15224400/perl-on-windows-problems-with-encoding https://te ...

  4. SVNKit学习——基于Repository的操作之print repository tree、file content、repository history(四)

    此篇文章同样是参考SVNKit在wiki的官方文档做的demo,每个类都可以单独运行.具体的细节都写到注释里了~ 开发背景: SVNKit版本:1.7.14 附上官网下载链接:https://www. ...

  5. (转)Python标准库:内置函数print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

    原文:https://blog.csdn.net/caimouse/article/details/44133241 https://www.cnblogs.com/owasp/p/5372476.h ...

  6. Disabling default console handler in Java Logger by codes

    The open source packages usu. relies on log4j or Java Logger to print logs, by default the console h ...

  7. python print及格式化

    print(value,sep=' ',end='\n',file=sys.stdout, flush=False) sep=' '默认空格 print('hello','world') #hello ...

  8. html之file标签 --- 图片上传前预览 -- FileReader

    记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能.当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了 ...

  9. 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite )

    对于文件夹,文档的操作一直处于一知半解状态,有时间闲下来了,好好练习了一把,对文档,文件的操作有了一个基本的认知, 若要深入了解,还是得通过实际的项目才行了,好了废话不多说,上酸菜!! 注:红色标题为 ...

随机推荐

  1. TreeListControl:设置行样式

    <Style x:Key="OddEvenRowStyle" TargetType="{x:Type dxg:GridRowContent}"> & ...

  2. 用Java发送HTML格式邮件测试类(支持中文)

    代码由纯Java写成,支持中文,一目了然,只要将Main函数中的相关信息填写正确就直接用了,便于修改,可以在此类基础上任意扩展成自己的类. 注意做HTML形式的邮件,最好把HTML,CSS都写全,只写 ...

  3. RTT下spi flash+elm fat文件系统移植小记

    背景: MCU:STM32F207 SPI flash: Winbond W25Q16BV OS: RTT V1.1.1 bsp: STM32F20x 1 将spi_core.c,spi_dev.c及 ...

  4. poj 2486 Apple Tree (树形背包dp)

    本文出自   http://blog.csdn.net/shuangde800 题目链接: poj-2486 题意 给一个n个节点的树,节点编号为1~n, 根节点为1, 每个节点有一个权值.    从 ...

  5. Hibernate(四)结构-基础语义和事务

    一.基础语义 核心: Configuration SessionFactory Session 二.Configuration Configuration类负责管理Hibernate的配置信息,Hib ...

  6. 算法笔记_180:历届试题 国王的烦恼(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛.两个小岛间可能存在多座桥连接.然而,由于海水冲 ...

  7. spring-tool-suite(STS) 创建 spring boot项目

    1.创建一个Spring Starter Project工程(new --> Spring Starter Project) 2.选择自己需要的依赖,因为想要通过REST方式来验证是否成功创建, ...

  8. 图说十大数据挖掘算法(一)K最近邻算法

    如果你之前没有学习过K最近邻算法,那今天几张图,让你明白什么是K最近邻算法. 先来一张图,请分辨它是什么水果 很多同学不假思索,直接回答:“菠萝”!!! 仔细看看同学们,这是菠萝么?那再看下边这这张图 ...

  9. OpenERP7.0中日期的问题

    在OpenERP7.0中载入中文语言后,输入某些单据,一些细化到时间的字段输入时会报错,说是日期格式不正确. 解决办法是进入[设置]-[翻译]-[语言]菜单,把时间格式中的值 %I:%M:%S %p ...

  10. 【WebKit内核 CEF3 】 第一篇:下载分支代码并本地编译

    关于CEF  Chromium Embedded Framework 简单说就是  WebKit内核的 对外绑定. 当前主流浏览器内核 一.Trident内核代表产品Internet Explorer ...