我如何在日志中获得调试消息HAWQ



是否有任何我可以在HAWQ日志中获得调试消息的gc或命令?现在,我只能得到ERROR或FATAL消息,但不能得到任何DEBUG消息。如何在日志文件中打印这些DEBUG消息?

可以在hawq主数据目录的postgresql .conf中设置log_min_messages级别。日志级别可以是以下值,按详细程度递减的顺序排列:# debug5# debug4# debug3# debug2# debug1#信息#注意#警告#错误#日志#致命#恐慌

修改postgresql .conf需要重启集群。但是,如果您只想在此会话中记录调试信息,则可以在PSQL会话中设置GUC log_min_messages。

apache hawq的不同组件支持不同级别的调试信息。

支持的总体级别如下所示。您可以参考https://github.com/apache/incubator-hawq/blob/master/src/include/utils/elog.h了解详细信息。

/* Error level codes */
Level        Value
------------------
DEBUG5          10
DEBUG4          11
DEBUG3          12
DEBUG2          13
DEBUG1          14
LOG             15
COMMERROR       16
INFO            17
NOTICE          18
WARNING         19
ERROR           20
FATAL           21
PANIC           22

要获得您想要的DEBUG消息,您需要检查您关心的有关支持的调试级别的组件。然后在运行查询之前,使用下面的设置来获取调试信息:

  • 任意一个GUC的持久级别("hawq config -c log_min_messages -v DEBUG_LEVEL"然后"hawq restart cluster -a")
  • 或使用会话级别调试("set log_min_messages = DEBUG_LEVEL")

如果使用最高级别的调试级别也找不到足够的日志信息,您可以尝试自己在apache hawq源代码中添加它。

DEBUG可能有两个含义,一个是hawq代码中的DEBUG日志级别,由ztao1987回答,另一个是当您使用gdb/lldb进行调试时,其中是打印函数的输出。答案也在主/段日志中。stdout已经被HAWQ重定向到日志文件,例如,当你想在lldb中打印一个元表时,只需输入"expr print_slot(yourslot)",然后tail -f your.log,槽信息将打印在屏幕上。

相关内容

  • 没有找到相关文章

最新更新