天天看点

日志工具 BnisLog 1.0.0

BnisLog日志工具下载地址:  https://download.csdn.net/download/wabil/12671597

BnisLog日志工具版本: V1.0.0 Release at Jul 29 2020 20:17:56

1.工具采用极简风格来设计,主界面的控件尽量的少 (绿色软件无需安装)。

2.工具最主要的功能是日志调试,包括串口调试,网络调试,程序开发调试。

3.日志保存和智能过滤等功能是比较好用的日常开发调试测试功能。

4. 缤纷的主题色, 可清新护眼, 可炫酷深沉 。 

 设置主题颜色 Menu -> Display color set. 内置5个主题色,用户也可以自定义颜色风格。

日志工具 BnisLog 1.0.0

4.1 兼容Linux终端风格的printf (主要用于区分不同类别输出,如:_Warn,_Error,_Info...)

char buf[100]={0};
	sprintf(buf,"\033[44;37m===蓝背景,白字体===\n  \033[0m");
	_printf( buf ); //将字符串发送到UART串口
	sprintf(buf,"\033[40;32m===黑背景,绿字体===\n  \033[0m");
	_printf( buf ); //将字符串发送到UART串口
	sprintf(buf,"\033[43;35m===黄背景,紫字体===\n  \033[0m");
	_printf( buf ); //将字符串发送到UART串口
           
日志工具 BnisLog 1.0.0
日志工具 BnisLog 1.0.0

5.日志过滤功能 Menu(Ctrl+M) ->Filter data(F2) .

日志工具 BnisLog 1.0.0

>上图可以看出,Filter 栏1的(用户定义)关键字是 PC2MCU ,将日志里带有此字的数据行转到上面。 第2栏的关键字是 MCU2 。这种设计方便上下位机的日志数据交互清楚的看到,如上面的是上位机-->下位机的数据,下面是下位机-->上位机的数据 一目了然。有时候可以结合时间点查到问题的所在。

>在Filter界面按Ctrl+S 快捷键可保存这此过滤的结果。

>注意:过滤的关键字还会带逻辑功能,比如:用户想要过滤 PC2MCU 同时需带有字符 18 , 那么关键字就是 PC2MCU&18 .

比如:用户想要过滤 PC2MCU 同时需不能含有字符 18 , 那么关键字就是 PC2MCU!18 .

>在Filter界面双击过滤的结果,软件会自动跳到主页面的对应行,方便用户定位问题,和查找上下文。

>若ShowNumLine打勾,则用于显示---00---05--10--15---(内容可以修改)在每隔五个日志前添加,方便查看 日志数据的位数,比如第10位,立刻就能认出,不需要用户挨个数。 

>日志串口端的波特率,超时等在 Menu->Uart parameter set 中设置,用户可输入波特率,或者选择系统内置的。

>当用户将log文件拖到主界面(或者菜单->Open log file), 软件会自动加载显示出来,同时也会过过滤到Filter界面!! 这个操作方便用户重现数据的发生过程.

6.日志的发送功能

>单个字符串发送,Single send data (Ctrl+WIN)

日志工具 BnisLog 1.0.0

>此对话框可以发送字符串,16进制或者ascII, 可以发送文件,点击>>则选择需发送的文件,也可以直接将文件拖动进来 .

>下拉列表主要是,发送文件数据的间隔设置,None代表无延时,下面有每多少个字节延时多少毫秒.

>此对话框具有发送历史记录保存功能, 通过键盘Up,Dn上下查看记录(类似Linux/Dos指令记录)

>Cleaned打钩时,发送完字符串就会清空输入框.

>\r\n打钩代表,回车时,字符串后缀添加的数据.Txd:为发送的数据数量.

>多个字符串发送,Mutiple send data (Ctrl+Z)

日志工具 BnisLog 1.0.0

  >EnSendTimer使能定时器,后面是定时的间隔,单位ms,TimerCycle是循环发送. Cycle_order:为发送的顺序,比如用户只想循环的发送第3,5,7行的输入,那么Cycle_order就输入 3,5,7就可以了。不填(空白)为全部都循环发送.

>smart_paste是智能黏贴, 将用户复制的内容分行添入各个行。

>双击edit框可修改按钮作为注释。

>该界面下快捷键盘Ctrl+1等于点击发送1,Ctrl+2等于点击发送2  ... ...

7.日志开发跟踪功能

  此功能主要针对PC软件程序开发中使用,一般开发过程中需要内部输出日志,比如打印一下变量,函数运行状态等等,像printf(),OutputDebugString(), TRACE() 等等。这些函数只能在IDE运行时才能用,缺点是脱离IDE则无法调试。

本软件采用复制粘贴板机制来实现和目标exe的通讯。使用方法是先设置一个程序标题, Menu->LogTitle。如xxx。 那么程序的标题就会变成 BnisLog#xxx ,这时,你需要调用以下函数就能实现你的pc软件打印日志到本软件. (注意xxx是任意定义的,但是WND_TITLE 要和本软件的标题一致!!)

#define  WND_TITLE   "BnisLog#xxx" //注意要和日志工具的标题栏一致!

void BnisLog(char* str,int len ){
 COPYDATASTRUCT cpd;
 cpd.cbData =  len;
 cpd.lpData =   (void*) str;
 HWND hWndRcv=::FindWindowA("#32770",WND_TITLE);
 ::SendMessage(hWndRcv,WM_COPYDATA,(WPARAM)len,(LPARAM)&cpd);
 return; 
}

void PrintLog(char* fmt, ...){
 const int BUFFER_SIZE  = 10240;
 char* buf=new char[BUFFER_SIZE];
 memset(buf,0,BUFFER_SIZE);
 va_list args;
 va_start(args,fmt);
 vsprintf_s(buf,BUFFER_SIZE, fmt, args);
 va_end(args);
 BnisLog(buf,strlen(buf)+1);
 free(buf);
}
           
日志工具 BnisLog 1.0.0

>在VS中的测试效果如上图,一个win32程序的用PrintLog函数就能扩展输出到本软件,PrintLog函数代码可以点击Menu后再点击版本号就会弹出一个About对话框 ,再点击Code the code就可以粘贴到您的程序代码里运行调试.有些开发环境需要添加<Windows.h> <stdlib.h> 等头文件

日志工具 BnisLog 1.0.0

8.日志再向外扩展日志.

 这个功能和用户显示屏不够用,需要拉扩展屏原理一样,就是将本软件的显示内容,再通过PrintLog函数发送到另外一个日志工具,(同时打开两个BinsLog),但是扩展的工具的标题需要设置成BnisLog#Enable_ExternLog. 而且本软件要菜单下点击成#Enable_ExternLog.

日志工具 BnisLog 1.0.0

如上图,为了区分,两个软件设置了不同的主题颜色. 黑色的Logger作为被扩展的,所以标题设置成BnisLog#Enable_ExternLog,绿色Logger菜单需要设置成#Enable_ExternLog ,注意黑色Logger那边不需要设置#Enable_ExternLog, 可以看到绿色Logger打开COM1收到了3行数据,它同时将这些数据扩展到黑色Logger(日志的时间点可以看到同时性).这个功能的用途是后面做过滤和脚本比较方便.

9.日志保存,查找功能

 >直接在主页快捷键Ctrl+S即可保存.在提示的对话框中可以直接修改logger日志文件名.

 >File auto save功能为日志内容自动每小时保存一次,用于长运测试.长期几天测试,后面再通过查日志数据追踪定为问题

>在Filter过滤界面按Ctrl+S 快捷键也可保存这此过滤的结果。

>快捷键F5,为清空主页日志和过滤页面的日志. 点击界面上的"RECV:"也可以清楚日志内容.

>日志的时间格式,编码格式,在Menu下可以自行设置修改.

>Ctrl+F 为查找日志功能, Ctrl+D为显示选中行日志内容

10.日志脚本功能

日志工具 BnisLog 1.0.0

>Menu->Script Parser(F1) 弹出脚本解析器,默认加载本软件目录下的Html网页,其实就是需要里面的js脚本和日志工具做交互,实现一些更人性化,更符合开发测试用途的功能.

>StartFilter左边的输入栏是过滤的关键字,就是让日志的内容过滤到传送到网页 js_data_recv 函数响应.

 //接收来自日志过滤后的字符串str,另外from为区分来自1:uart,2:net

    function js_data_recv(str,from){  ... }

>Sound为声音使能,打钩时,当网页收到一帧过滤后的数据就会响应一声.

>Config为设置网页编辑器IDE. 默认是系统自带的笔记本,推荐安装设置notepad++. 快捷方法是直接拖动编辑器的exe到该界面上.

>EditSource为编辑选中的Html,可以根据用户的需要增加js功能.(如com转socket,数据图案可视化,嵌入式设备模拟器,数据波形图标等等),代码编辑完后点击FlashHtml,脚本功能立刻生效!  (更多脚本,由用户自行创作!!! )

>Call js Func1 和 Call js Func2两个按钮是用于触发js里面的js_func1(v1)和js_func2(v1),左边的输入框作为参数传入.

> 该界面下按F1会弹出本软件js_cpp交互的api接口.

日志工具 BnisLog 1.0.0