支持windows linux下将指定内存段转为16进制与ascii码的日志输出

来源:

1. 简介

将指定内存段转为16进制与asci码的输出到日志文件的类。2. 功能介绍1)支持window与linus双系统。2)可指定输出目录。3)日志能输出的时间精确到毫秒,日志能输出线程号。4)提供字符串输出。5)提供指定内存转换为16进制输出。6)提供指定内存转换为16进制和ascii码同时输出。7)可调整16进制输出间距。3. 原理和算法1)模块是基于C++语言编写;2)通过条件定义同时支持window与linus双系统4. 编译和链接将源程序加入到工程中5. 运行环境windows、linux操作系统验证同时支持。6. 限制条件无7. 接口1.构造函数:CViTrace(char*szPathName,//路径名char* szAppName,//文件名_APP_INFO_OUT_CALLBACK pInfoOutCallback=NULL,//额外的输出回调void *pInfoOutCallbackParam=NULL);//回调函数参数/*************************************************************************************功能:设置日志输出路径和额外的输出回调:参数:char*szPathName://路径名char* szAppName,//文件名_APP_INFO_OUT_CALLBACK pInfoOutCallback:额外的输出回调**************************************************************************************/3.UINT trace(char* szFormat,…);/*************************************************************************************功能:字符串输出:参数: char* szFormat:可变参数,类似printf的使用**************************************************************************************/4. trace_bin(char*pBuffer,UINT nLength,bool bPrintAsci=false)/******************************************************************************************功能:转换为16进制和ascii码输出:参数:void *Buf:内存片地址。UINT nLength:内存片长度bool bPrintAsci: false:左侧不输出ascii码信息,true:左侧输出ascii码信息******************************************************************************************/8. 示例8.1. Linux Demo#include "vitrace.h"CViTrace vilog("/mds6800","1234");vilog.trace("log out put demo,%s","string inf");char* szName= "1234567asdfghddffgeerrtyuiopasdfgghhjjzxcvbbbnnnmn";vilog.trace_bin(szName, 50);vilog.trace_bin(szName, 100,true);日志输出:<2015-06-09,15:18:48-124, tId=134597956>log out put demo,string inf<2015-06-09,15:18:48-124, tId=134597956>num address :bufferContent 0 0x807370c:31323334 35363761 73646667 68646466 66676565 72727479 75696F70 61736466 32 0x807372c:67676868 6A6A7A78 63766262 626E6E6E 6D6E <2015-06-09,15:18:48-124, tId=134597956>num address :bufferContent 0 0x807370c:31323334 35363761 73646667 68646466 66676565 72727479 75696F70 61736466 1234567asdfghddffgeerrtyuiopasdf 32 0x807372c:67676868 6A6A7A78 63766262 626E6E6E 6D6E000D 0A20696E 70757420 77726F6E gghhjjzxcvbbbnnnmn… input wron 64 0x807374c:67212075 73616765 3A257320 25730000 0D0A2069 6E707574 2077726F 6E672120 g! usage:%s %s…. input wrong! 96 0x807376c:75736167 usag8.2. Window Demo#include "stdafx.h"#include <stdio.h>#include <string.h>#include <string>#include <stdarg.h>#include <direct.h>#include "vitrace.h"#include <windows.h>#include <tchar.h>#include "targetver.h"char* szName= "1234567asdfghjklqwertyuiopasdfghjklzxcvbnm1234567asdfghjklqwertyuiopasdfghjklzxcvbnm";int _tmain(int argc, _TCHAR* argv[]){char buffer[MAX_PATH]; getcwd(buffer, MAX_PATH);CViTrace viLog(buffer,"buffer_print_test");viLog.trace("字符串信息输出:");viLog.trace("that’s why with other flash applications you just don’t get the expected results. the best option for each photo.");viLog.trace("按进制编码输出指定内存的前字节内容:");viLog.trace_bin(szName,50);Sleep(100);viLog.trace("输出指定内存的前字节内容,左边为进制值,右边为assci码:");viLog.trace_bin(szName,100,true);getchar();return 0;}<2015-06-09,15:23:18-526, tId=20451738>字符串信息输出:<2015-06-09,15:23:18-526, tId=20451738>that’s why with other flash applications you just don’t get the expected results. the best option for each photo.<2015-06-09,15:23:18-526, tId=20451738>按16进制编码输出指定内存的前300字节内容:<2015-06-09,15:23:18-526, tId=20451738>num address :bufferContent 0 01387740:31323334 35363761 73646667 686A6B6C 71776572 74797569 6F706173 64666768 32 01387760:6A6B6C7A 78637662 6E6D3132 33343536 3761 <2015-06-09,15:23:18-635, tId=20451738>输出指定内存的前1000字节内容,左边为16进制值,右边为assci码:<2015-06-09,15:23:18-635, tId=20451738>num address :bufferContent 0 01387740:31323334 35363761 73646667 686A6B6C 71776572 74797569 6F706173 64666768 1234567asdfghjklqwertyuiopasdfgh 32 01387760:6A6B6C7A 78637662 6E6D3132 33343536 37617364 6667686A 6B6C7177 65727479 jklzxcvbnm1234567asdfghjklqwerty 64 01387780:75696F70 61736466 67686A6B 6C7A7863 76626E6D 00000000 00000000 00000000 uiopasdfghjklzxcvbnm…………但我们好多人没想过,勇敢的冷静的理智的去接受失败,

支持windows linux下将指定内存段转为16进制与ascii码的日志输出

相关文章:

你感兴趣的文章:

标签云: