Gibt es irgendwelche GUCs oder Befehle, die Debug-Meldungen im HAWQ-Log bekommen können? Jetzt kann ich nur ERROR oder FATAL Nachricht bekommen, kann aber keine DEBUG Nachrichten bekommen. Wie diese DEBUG-Nachrichten in Protokolldatei gedruckt werden?Wie kann ich DEBUG-Nachrichten HAWQ im Protokoll abrufen?
Antwort
Sie können log_min_messages level in postgres.conf des hawq Stammdatenverzeichnisses einstellen. Protokollebene die folgenden Werte in der Reihenfolge abnehmender Detail sein: # debug5 # debug4 # DEBUG3 # debug2 # debug1 # info # Hinweis # Warnung # Fehler # log # fatal # Panik
Es muss Cluster neu gestartet werden, wenn Sie die postgres.conf ändern. Sie können jedoch GUC log_min_messages in der PSQL-Sitzung festlegen, wenn Sie nur die Debug-Informationen in dieser Sitzung protokollieren möchten.
Verschiedene Komponenten von Apache Hawq unterstützen unterschiedliche Debugging-Ebene.
Die unterstützten Ebenen sind wie folgt. Einzelheiten hierzu finden Sie unter 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
die DEBUG Nachricht, die Sie wollen, müssen Sie die Komponente, die Sie über in Bezug auf die unterstützte Version von Debug-Pflege überprüfen. Dann, bevor Sie Ihre Abfrage ausführen, verwenden Sie unter Einstellung Debug-Informationen zu erhalten:
- entweder persistent Niveau der GUC ("hawq Config -c log_min_messages -v DEBUG_LEVEL" und dann "hawq Neustart Cluster -a")
- oder verwenden Session Level-Debugging („set log_min_messages = DEBUG_LEVEL“)
Wenn Sie finden nicht genug Protokollinformationen auch bei höchsten Level-Debugging-Ebene, können Sie versuchen, es in apache hawq Quellcode einfügen selbst.
DEBUG Sie beziehen sich möglicherweise auf zwei Bedeutung, man ist DEBUG Loglevel in Hawq Code, der von ztao1987 beantwortet wird, und der andere ist, wenn Sie mit gdb/lldb debuggen, wo ist die Ausgabe Ihrer Druckfunktion. Die Antwort ist auch im Master/Segment-Protokoll. stdout wurde von HAWQ zur Protokolldatei umgeleitet. Wenn Sie beispielsweise einen Tupletabeschlitz in lldb drucken möchten, geben Sie einfach "expr print_slot (yourslot)" und tail -f your.log ein, die Slot-Info wird auf dem Bildschirm gedruckt .