【发布时间】:2017-06-08 09:54:35
【问题描述】:
我们正在使用 Apache Phoenix 访问 HBase 数据存储。作为某些要求的一部分,我们需要记录从任何 Phoenix 客户端发出的每个更新操作,例如写入和删除表命令。 Phoenix 的日志记录是否已经以可解析的格式捕获这些命令?如果没有,我如何获取这些信息?
【问题讨论】:
我们正在使用 Apache Phoenix 访问 HBase 数据存储。作为某些要求的一部分,我们需要记录从任何 Phoenix 客户端发出的每个更新操作,例如写入和删除表命令。 Phoenix 的日志记录是否已经以可解析的格式捕获这些命令?如果没有,我如何获取这些信息?
【问题讨论】:
*假设您正在使用 PQS * 根据您使用的版本,您可以在 4.8 及更高版本中打开跟踪。
如果你是 4.7 及更低版本,你可以使用中间/反向代理,比如 nginx
log_format postdata '$request_time $msec $remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" "$request_body"';
来自我的帖子,http://bastide.org/2017/01/18/logging-using-pqs-lower-than-4-6/
然后您可以在日志上使用正则表达式进行过滤并查看 ProtoBuf 对象,或者您可以在 nginx 配置中使用正则表达式查看日志中的过滤。
对于高于 4.7 的版本,您可以使用 log4j 属性配置文件并为 PreparedStatement/Statement -Dlog4j.configuration=file:///tmp/log4j.properties 开启日志记录
【讨论】: