开源c++日志库 寻找-测试-选定


背景:在考虑代码编写时,考虑到日志是必须的,看看c++有没有合适的日志库。

网络上搜索,好像有不少,还有log4j类似的。


liblogger

一款为C++开发的日志工具,支持输出到文件、网络以及控制台 

参考地址:http://sourceforge.net/projects/liblogger/ 

Log4cpp

 下载地址: http://sourceforge.net/projects/log4cpp/files

log4cplus

下载地址:http://sourceforge.net/projects/log4cplus/



因为用的是VC,windows平台,发现好多都是使用pthread, 排除掉。

又有好多是新支持C11的,我的版本太老,不行。


最后找到了这个:

http://my.oschina.net/u/988092/blog/198377


只要是支持vc6之后的版本,而且多线程。

而且对一些数据16进制输出(类似以前汇编的d命令)。

2016-08-18 13:18:59.131000 | DEBUG | 3112:6908:trade.cpp:345 | Order:[656]
             0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F    0123456789ABCDEF
0x00000000   39 39 39 39 00 00 00 00 00 00 00 30 36 37 31 38   9999.......06718
0x00000010   35 00 00 00 00 00 00 00 61 75 31 37 30 38 00 00   5.......au1708..
0x00000020   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0x00000030   00 00 00 00 00 00 00 32 00 00 00 00 00 00 00 00   .......2........
0x00000040   00 00 00 00 30 36 37 31 38 35 00 00 00 00 00 00   ....067185......
0x00000050   00 00 00 00 32 31 30 00 00 00 00 31 00 00 00 00   ....210....1....
0x00000060   00 00 00 00 00 38 72 40 01 00 00 00 33 00 00 00   .....8r@....3...
0x00000070   00 00 00 00 00 00 31 00 01 00 00 00 31 00 00 00   ......1.....1...
0x00000080   00 00 00 00 00 00 00 00 30 CA 11 41 00 00 00 00   ........0..A....
0x00000090   39 39 39 39 63 61 63 00 00 00 00 00 00 00 00 00   9999cac.........
0x000000A0   00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20   ............    


只需要把log.c 和log.h加入项目中即可使用,也支持编译成dll供加载调用。

主程序中加载  (后面再考虑通过配置文件加载日志级别)

		CreateLogHandleG();
		SetLogOutputG( LOG_OUTPUT_FILE , "xyzproxy.log" , LOG_NO_OUTPUTFUNC );  //文件名
		SetLogLevelG( LOG_LEVEL_DEBUG );
                SetLogStylesG( LOG_STYLES_HELLO , LOG_NO_STYLEFUNC );
退出时
                DestroyLogHandleG();


代码中直接使用,类似printf的格式

    InfoLogG( __FILE__ , __LINE__ , "ReqConnect(%s)",pFront );

    DebugLogG( __FILE__ , __LINE__ ,"Cxyztrade::OnRspUserLogin(LoginField, err(%d),bIsLast(%d) )",pRspInfo->ErrorID,bIsLast);
    DebugHexLogG(__FILE__,__LINE__,(char*)pRspUserLogin,sizeof(*pRspUserLogin),"FtdcRspUserLogin:[%ld]",sizeof(*pRspUserLogin));



其他的日志文件大小配置,级别配置等,待后面继续尝试:-)

LOGS 包含LOG数组


LOGS       -----------    LOG

LOGSCONF  ------------- LOGCONF


LOGC            (精简版本,可以直接调函数写日期)

		g = CreateLogHandleFromConfig( "ctest.log.conf" , NULL ) ;
		if( g == NULL )
		{
			printf( "从配置文件构建日志句柄失败\n" );
			return -1;
		}else{
			SetGlobalLOG(g);
		}
配置文件:ctest.log.conf
output        FILE     ctestlog.log
level         DEBUG
styles        DATETIME|LOGLEVEL|PID|TID|SOURCE|FORMAT|NEWLINE
options       CHANGE_TEST
rotate_mode   SIZE
rotate_size   10MB
log_bufsize   1MB 5MB



                                   



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值