打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Linux下实现软件多功能日志(log)的记录
前段时间调试万兆的项目,为了调试,发现错误,我们便直接使用了printf 打印到stdout上,大家都知道,Linux终端显示的缓冲是有限的(默认的显示几百行),所以如果我们程序printf行数较多,或者程序运行时间较长,难免有一些记录被冲掉,进而影响查看bug。特别是对随机的、少重现错错误,想通过屏幕上printf出来的数据调试,就难免困难一些,当然我们也可以使用重定向实现

程序>log.txt

但是这种方式,打印到文件上便不能显示到屏幕上了,所以有一定的局限性。

于是写了一个程序用意实现。

改程序有以下几个文件

Debug.c

Debug.h

 

改打印log程序可以关闭和打开文件输出、屏幕输出详细说明如下:

       debug_term_on();//将打印信息输出到屏幕上

       debug_term_off();//不将打印信息输出到屏幕上

       debug_file_off();//不将打印信息输出到文件中

       debug_set_dir( “./log” )  ; //设置log文件夹

       debug_file_on();//将打印信息输出到文件中

 

输出例子:

01 #include <stdio.h>
02 #include "debug.c"
03 int main(int argc, char *argv[])
04 {
05 /*--------------------初始化---------------------*/
06 char* log_dir = "./log";//the dir
07 unsigned int  log_terminal = 1;//debug on terminal: yes or not
08 /* init the debug info */
09 if( log_terminal )
10 {
11 debug_term_on();
12 }
13 else
14 {
15 debug_term_off();
16 }
17 if( log_dir == NULL ){
18 debug_file_off();
19 }else{
20 debug_set_dir( log_dir );
21 debug_file_on();
22 }
23 /*-------------------使用测试---------------------*/
24 DBG("I printf on stdout and logfile...\n");
25 return 0;
26 }

代码下载

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
PLSQL 操作 ORACLE 服务器上的文件
注释整个程序里的printf
Linux下的基本操作
keil教程
【转】Dos重定向以及管道
boa资料汇总
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服