我是否可以在HAWQ日志中获取调试消息的GUC或命令?现在,我只能获取ERROR或FATAL消息,但无法获取任何DEBUG消息。如何在日志文件中打印这些DEBUG消息?
答案 0 :(得分:0)
您可以在hawq主数据目录的postgres.conf中设置log_min_messages级别。日志级别可以是以下值,以减少细节的顺序: #debug5 #debug4 #debug3 #debug2 #debug1 #info # 注意 # 警告 #错误 #log #datal #panic
答案 1 :(得分:0)
如果更改postgres.conf,则需要重新启动集群。但是,如果您只想在此会话中记录调试信息,则可以在PSQL会话中设置GUC log_min_messages。
答案 2 :(得分:0)
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消息,您需要检查您关心的组件,了解支持的调试级别。然后在运行查询之前,使用以下设置获取调试信息:
如果您在最高级别的调试级别找不到足够的日志信息,您可以尝试自己在apache hawq源代码中添加它。
答案 3 :(得分:0)
您所指的DEBUG可能有两个含义,一个是hawq代码中的DEBUG日志级别,由ztao1987回答,另一个是使用gdb / lldb进行调试时,其中是print函数的输出。 答案也在主/段日志中。 stdout已被HAWQ重定向到日志文件,例如,当你想在lldb中打印一个tupletableslot时,只需输入" expr print_slot(yourslot)",然后输出-f your.log,插槽信息将打印在屏幕上。