日志中间件
如何使用
LogMaker.init(callback)即为初始化完成的回调,LogMaker需要去读取配置和初始化客户端,初始化完成后可在外面调用
var LogMaker = require('../index');
LogMaker.init({'host': '106.75.98.19:2181', 'path': '/h5_flume/config', 'client_path': '/h5_flume/h5_out_net'}, function () {
// 初始化完成后才可调用
LogMaker.log_coin(1003, 1, 'role_id', 'field_name', 0, 100, 1, 'scene', 'remark', new Date().toLocaleString(), '');
LogMaker.log_login(1003, 9, 9, 'user_id', 'role_id', 'device_os', 'device_type', 'device_id', 1, 1, 'ip', null, '');
LogMaker.log_register(1003, 9, 9, 'user_id', 'role_id', 'device_os', 'device_type', 'device_id', null, '');
LogMaker.log_adv(1003, 9, 'device_id', new Date().toLocaleString(), '');
LogMaker.log_tran(order_id, 'cp_user_id', 1003, 'sp_order_id', 'sp_user_id', 0, 1003, 9,
'device_id', 'role_id', 'role_name', 0, 1, 'product_id', 1.00, 'remark', 1, new Date().toLocaleString());
});
释放资源
LogMaker.release()
目录说明
.
├── gen-nodejs # flume生成的类,通过thrift协议收集日志
├── logs # 本地日志
├── model # 接口类
├── test # 测试类
│ ├── test_client # 测试客户端可用性
│ ├── test_index # 测试中间件整体的可用性
│ ├── test_zookeeper # 测试zk集群的可用性
├── utils # 工具封装
│ ├── client_util # 客户端封装,创建、提供可用客户端、错误重连
│ ├── config # 读取zookeeper集群配置及监听
│ ├── file_util # 发送错误时写入文件和读取再次发送
│ ├── timer_util # 定时读取发送失败的日志重发
├── index # 对外提供接口
├── package.json # 依赖包
接入遇到常见问题:
- 传送过来的参数类型,是否正确,如果不正确会导致不能正常写入数据库。
- 发送测试消息每次要不一样,一样的话会被去重,导致不能写入数据库。
部分接口特别说明
字段名 |
描述 |
类型 |
cp_app_id |
应用标识:100325 |
int |
retail_id |
渠道标识,从1000起自由定义 |
int |
game_id |
10001 |
int |
device_id |
设备标识,获取不到传"" |
string |
field_name |
付费:pay_gold, 免费: free_gold |
string |
activated_time |
所有时间相关格式统一如"2017-8-30 17:36:13" |
TIMESTAMP |
lifetime |
消费周期,如月卡30,年卡365 |
int |
uptime |
从角色登录到退出的时间,没有传0 |
int |
sp_order_id |
第三方的order_id |
string |
pay_id |
1支付宝,2微信,获取不到传0 |
int |
order_time |
订单生成时间、订单成功交易时间 |
TIMESTAMP |
currency_id |
RMB:1 |
SMALLINT |
广告日志
字段名 |
描述 |
类型 |
cp_app_id |
内容提供商应用标识 |
INT |
retail_id |
渠道标识 |
INT |
device_id |
设备标识 |
VARCHAR(64) |
activated_time |
注册时间 |
TIMESTAMP |
reserve |
保留字段 |
TEXT |
虚拟币日志
- 充值RMB时获取的虚拟币日志,充值和消费都需要记录
字段名 |
描述 |
类型 |
cp_app_id |
内容提供商应用标识 |
int |
server_id |
区服标识 |
int |
role_id |
角色标识 |
string |
field_name |
虚拟币字段名称 |
string |
old_val |
原始值 |
int |
new_val |
目标值 |
int |
lifetime |
消费周期 |
int |
scene |
数值变化场景 |
string |
remark |
备注 |
string |
log_time |
日志时间(可选) |
string |
reserve |
保留字段(可选) |
string |
登录日志
字段名 |
描述 |
类型 |
cp_app_id |
内容提供商应用标识 |
INT |
server_id |
区服标识 |
INT |
retail_id |
渠道标识 |
INT |
user_id |
用户标识 |
VARCHAR(36) |
role_id |
角色标识 |
VARCHAR(32) |
device_id |
设备标识 |
VARCHAR(64) |
device_type |
设备类型 |
VARCHAR(64) |
device_os |
设备系统 |
VARCHAR(32) |
uptime |
在线时长,从登陆开始的秒数 |
INT |
lvl |
角色等级 |
INT |
ip |
登录地址 |
VARCHAR(64) |
log_time |
日志时间(可选) |
string |
reserve |
保留字段(可选) |
TEXT |
注册日志
字段名 |
描述 |
类型 |
cp_app_id |
内容提供商应用标识 |
INT |
server_id |
区服标识 |
INT |
retail_id |
渠道标识 |
INT |
role_id |
角色标识 |
VARCHAR(32) |
user_id |
用户标识 |
VARCHAR(32) |
device_id |
设备标识 |
VARCHAR(64) |
device_type |
设备类型 |
VARCHAR(64) |
device_os |
设备系统 |
VARCHAR(32) |
log_time |
日志时间(可选) |
string |
reserve |
保留字段(可选) |
TEXT |
订单日志
字段名 |
描述 |
类型 |
cp_order_id |
内容提供商订单标识 |
VARCHAR(36) |
cp_user_id |
内容提供商用户标识 |
VARCHAR(32) |
cp_app_id |
内容提供商应用标识 |
INT |
sp_order_id |
服务提供商订单标识 |
VARCHAR(127) |
sp_user_id |
服务提供商用户标识 |
VARCHAR(64) |
game_id |
游戏标识 |
INT |
server_id |
区服标识 |
INT |
retail_id |
渠道标识 |
INT |
device_id |
设备标识 |
VARCHAR(64) |
role_id |
角色标识 |
VARCHAR(32) |
role_name |
角色名称 |
VARCHAR(32) |
pay_id |
用户支付方式标识 |
SMALLINT |
order_time |
订单时间 |
TIMESTAMP |
currency_id |
币种 |
SMALLINT |
product_id |
购买项标识 |
VARCHAR(64) |
amount |
充值金额 |
DECIMAL(10,2) |
remark |
备注 |
TEXT |
is_success |
订单同步状态(1成功,0失败) |
INT |
reserve |
保留字段(可选) |
TEXT |