tars开源框架地址:https://github.com/Tencent/Tars
系列文章:
简介:Tars是腾讯从2008年到今天一直在使用的后台逻辑层的统一应用框架TAF(Total Application Framework),目前支持C++,Java,PHP,Nodejs语言。该框架为用户提供了涉及到开发、运维、以及测试的一整套解决方案,帮助一个产品或者服务快速开发、部署、测试、上线。 它集可扩展协议编解码、高性能RPC通信框架、名字路由与发现、发布监控、日志统计、配置管理等于一体,通过它可以快速用微服务的方式构建自己的稳定可靠的分布式应用,并实现完整有效的服务治理。目前该框架在腾讯内部,各大核心业务都在使用,颇受欢迎,基于该框架部署运行的服务节点规模达到上万个。
之前把tars的日志放在另外一篇专门讲tars组件的文章里面了,发现写下去由于tars通用组件比较多,文章太长,所以特地把日志功能独立出来。tars的日志服务器分本地的流水日志,还有远程的日志:本地日志一般用来记录一些程序debug的滚动日志,远程的日志用来汇总业务的统计日志等统一发送到远程的日志服务器,远程的日志服务器配置在config.conf文件的log选项里面:例如
log=LogServer.taflog4xxxsh.LogObj 代表远程日志统一写到这个远程日志服务里面,日志服务器一般用一到n台大磁盘的机器来部署logserver(大业务量的机器,一台日志服务器可能支撑不住)
一、下面先看下本地滚动日志的实现和使用方法:
业务使用本地滚动日志的方式:例如
LOG_ROLL_DEBUG("Uin:" << user->getUin() << ",iExtraScore:" << iExtraScore << ",iMaxExtraScore:" << iMaxExtraScore);
用于记录某个uin的额外分数和最大分数。
LOG_ROLL_DEBUG的宏定义:
#define LOG_DEBUG LOG->debug()<< "[" << __FILE__ << ":" << __LINE__ << ":" << __FUNCTION__ << "]|"
下面看LOG宏的定义
#define LOG