{"kind": "hook", "major": "18", "item": {"slug": "emit_log_hook", "name": "emit_log_hook", "name_zh": "emit_log_hook", "category": "Logging and function calls", "summary": "Hook for intercepting messages before they are sent to the server log", "aliases": [], "versions": {"10": {"facts": [{"label": "Interface type", "value": "emit_log_hook_type"}, {"label": "Header", "value": "src/include/utils/elog.h"}, {"label": "Subsystem", "value": "Logging and function calls"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "release": {"ref": "REL_10_STABLE", "label": "10", "major": "10", "channel": "historical", "revision": "f4e8f137bfb08a664c8288824c1e36b5143ac875"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/f4e8f137bfb08a664c8288824c1e36b5143ac875/src/include/utils/elog.h#L374", "path": "src/include/utils/elog.h", "label": "Interface declaration", "sha256": "812f5b725f9664cde3d869ae36f1ac0b4b1a4cd7648e0fe1891b3f5c70dea2f2"}, {"url": "https://github.com/postgres/postgres/blob/f4e8f137bfb08a664c8288824c1e36b5143ac875/src/backend/utils/error/elog.c#L101", "path": "src/backend/utils/error/elog.c", "label": "Core definition", "sha256": "70a59e866373c1b22b75abecd66de9836a720ed17381eefee858e84de761960b"}, {"url": "https://github.com/postgres/postgres/blob/f4e8f137bfb08a664c8288824c1e36b5143ac875/src/backend/utils/error/elog.c#L1473", "path": "src/backend/utils/error/elog.c", "label": "Call sites", "sha256": "70a59e866373c1b22b75abecd66de9836a720ed17381eefee858e84de761960b"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for intercepting messages before they are sent to the server log. Note that the hook will not get called for messages that are suppressed by log_min_messages. Also note that logging hooks implemented in preload libraries will miss any log messages that are generated before the library is loaded."]}, {"title": "Call sites", "paragraphs": ["src/backend/utils/error/elog.c:1473"]}, {"code": "\t * The log hook has access to both the translated and original English\n\t * error message text, which is passed through to allow it to be used as a\n\t * message identifier. Note that the original text is not available for\n\t * detail, detail_log, hint and context text elements.\n\t */\n\tif (edata->output_to_server && emit_log_hook)\n\t\t(*emit_log_hook) (edata);\n\n\t/* Send to server log, if enabled */\n\tif (edata->output_to_server)\n\t\tsend_message_to_server_log(edata);\n\n\t/* Send to client, if enabled */\n\tif (edata->output_to_client)\n\t\tsend_message_to_frontend(edata);", "title": "Core call context: src/backend/utils/error/elog.c:1467\u20131481", "paragraphs": []}], "signature": "typedef void (*emit_log_hook_type) (ErrorData *edata);\nextern PGDLLIMPORT emit_log_hook_type emit_log_hook;", "description": ["Hook for intercepting messages before they are sent to the server log"]}, "11": {"facts": [{"label": "Interface type", "value": "emit_log_hook_type"}, {"label": "Header", "value": "src/include/utils/elog.h"}, {"label": "Subsystem", "value": "Logging and function calls"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "release": {"ref": "REL_11_STABLE", "label": "11", "major": "11", "channel": "historical", "revision": "170e416034ec0231d9e9238f2577eeb76ca8d181"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/170e416034ec0231d9e9238f2577eeb76ca8d181/src/include/utils/elog.h#L374", "path": "src/include/utils/elog.h", "label": "Interface declaration", "sha256": "42deafdecd3c90576784453762296af9ef16f80d37c7c910dc914fe54f77d71e"}, {"url": "https://github.com/postgres/postgres/blob/170e416034ec0231d9e9238f2577eeb76ca8d181/src/backend/utils/error/elog.c#L101", "path": "src/backend/utils/error/elog.c", "label": "Core definition", "sha256": "01526398e3cfb222b549a5b7a336b61bd44c0f33c99c497d4a5b4ea6dcd78c97"}, {"url": "https://github.com/postgres/postgres/blob/170e416034ec0231d9e9238f2577eeb76ca8d181/src/backend/utils/error/elog.c#L1473", "path": "src/backend/utils/error/elog.c", "label": "Call sites", "sha256": "01526398e3cfb222b549a5b7a336b61bd44c0f33c99c497d4a5b4ea6dcd78c97"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for intercepting messages before they are sent to the server log. Note that the hook will not get called for messages that are suppressed by log_min_messages. Also note that logging hooks implemented in preload libraries will miss any log messages that are generated before the library is loaded."]}, {"title": "Call sites", "paragraphs": ["src/backend/utils/error/elog.c:1473"]}, {"code": "\t * The log hook has access to both the translated and original English\n\t * error message text, which is passed through to allow it to be used as a\n\t * message identifier. Note that the original text is not available for\n\t * detail, detail_log, hint and context text elements.\n\t */\n\tif (edata->output_to_server && emit_log_hook)\n\t\t(*emit_log_hook) (edata);\n\n\t/* Send to server log, if enabled */\n\tif (edata->output_to_server)\n\t\tsend_message_to_server_log(edata);\n\n\t/* Send to client, if enabled */\n\tif (edata->output_to_client)\n\t\tsend_message_to_frontend(edata);", "title": "Core call context: src/backend/utils/error/elog.c:1467\u20131481", "paragraphs": []}], "signature": "typedef void (*emit_log_hook_type) (ErrorData *edata);\nextern PGDLLIMPORT emit_log_hook_type emit_log_hook;", "description": ["Hook for intercepting messages before they are sent to the server log"]}, "12": {"facts": [{"label": "Interface type", "value": "emit_log_hook_type"}, {"label": "Header", "value": "src/include/utils/elog.h"}, {"label": "Subsystem", "value": "Logging and function calls"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "release": {"ref": "REL_12_STABLE", "label": "12", "major": "12", "channel": "historical", "revision": "3f302f0ed06f69c5ebd33d4df95895323a3cbef6"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/3f302f0ed06f69c5ebd33d4df95895323a3cbef6/src/include/utils/elog.h#L394", "path": "src/include/utils/elog.h", "label": "Interface declaration", "sha256": "e5e1ee22bdedc0b6ea57de39f813b7a72cf0ed3d95006cd585f924c267d21b2e"}, {"url": "https://github.com/postgres/postgres/blob/3f302f0ed06f69c5ebd33d4df95895323a3cbef6/src/backend/utils/error/elog.c#L101", "path": "src/backend/utils/error/elog.c", "label": "Core definition", "sha256": "36b0f718ebc488eb193ddebcab95d39ce8a8c4183b78edaf9b4999acbb77a33f"}, {"url": "https://github.com/postgres/postgres/blob/3f302f0ed06f69c5ebd33d4df95895323a3cbef6/src/backend/utils/error/elog.c#L1456", "path": "src/backend/utils/error/elog.c", "label": "Call sites", "sha256": "36b0f718ebc488eb193ddebcab95d39ce8a8c4183b78edaf9b4999acbb77a33f"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for intercepting messages before they are sent to the server log. Note that the hook will not get called for messages that are suppressed by log_min_messages. Also note that logging hooks implemented in preload libraries will miss any log messages that are generated before the library is loaded."]}, {"title": "Call sites", "paragraphs": ["src/backend/utils/error/elog.c:1456"]}, {"code": "\t * The log hook has access to both the translated and original English\n\t * error message text, which is passed through to allow it to be used as a\n\t * message identifier. Note that the original text is not available for\n\t * detail, detail_log, hint and context text elements.\n\t */\n\tif (edata->output_to_server && emit_log_hook)\n\t\t(*emit_log_hook) (edata);\n\n\t/* Send to server log, if enabled */\n\tif (edata->output_to_server)\n\t\tsend_message_to_server_log(edata);\n\n\t/* Send to client, if enabled */\n\tif (edata->output_to_client)\n\t\tsend_message_to_frontend(edata);", "title": "Core call context: src/backend/utils/error/elog.c:1450\u20131464", "paragraphs": []}], "signature": "typedef void (*emit_log_hook_type) (ErrorData *edata);\nextern PGDLLIMPORT emit_log_hook_type emit_log_hook;", "description": ["Hook for intercepting messages before they are sent to the server log"]}, "13": {"facts": [{"label": "Interface type", "value": "emit_log_hook_type"}, {"label": "Header", "value": "src/include/utils/elog.h"}, {"label": "Subsystem", "value": "Logging and function calls"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "release": {"ref": "REL_13_STABLE", "label": "13", "major": "13", "channel": "historical", "revision": "05f6c9ec2c475fae8fdd56ae40bd01afcf70d1f2"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/05f6c9ec2c475fae8fdd56ae40bd01afcf70d1f2/src/include/utils/elog.h#L397", "path": "src/include/utils/elog.h", "label": "Interface declaration", "sha256": "bd0a614c4318b05ece86927b071de3a001e0253a6320213b440fbe51d5f44432"}, {"url": "https://github.com/postgres/postgres/blob/05f6c9ec2c475fae8fdd56ae40bd01afcf70d1f2/src/backend/utils/error/elog.c#L105", "path": "src/backend/utils/error/elog.c", "label": "Core definition", "sha256": "a11eb5c215276513c5994aed94df679d766283aeebcce48a11f372f1d670ada2"}, {"url": "https://github.com/postgres/postgres/blob/05f6c9ec2c475fae8fdd56ae40bd01afcf70d1f2/src/backend/utils/error/elog.c#L1456", "path": "src/backend/utils/error/elog.c", "label": "Call sites", "sha256": "a11eb5c215276513c5994aed94df679d766283aeebcce48a11f372f1d670ada2"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for intercepting messages before they are sent to the server log. Note that the hook will not get called for messages that are suppressed by log_min_messages. Also note that logging hooks implemented in preload libraries will miss any log messages that are generated before the library is loaded."]}, {"title": "Call sites", "paragraphs": ["src/backend/utils/error/elog.c:1456"]}, {"code": "\t * The log hook has access to both the translated and original English\n\t * error message text, which is passed through to allow it to be used as a\n\t * message identifier. Note that the original text is not available for\n\t * detail, detail_log, hint and context text elements.\n\t */\n\tif (edata->output_to_server && emit_log_hook)\n\t\t(*emit_log_hook) (edata);\n\n\t/* Send to server log, if enabled */\n\tif (edata->output_to_server)\n\t\tsend_message_to_server_log(edata);\n\n\t/* Send to client, if enabled */\n\tif (edata->output_to_client)\n\t\tsend_message_to_frontend(edata);", "title": "Core call context: src/backend/utils/error/elog.c:1450\u20131464", "paragraphs": []}], "signature": "typedef void (*emit_log_hook_type) (ErrorData *edata);\nextern PGDLLIMPORT emit_log_hook_type emit_log_hook;", "description": ["Hook for intercepting messages before they are sent to the server log"]}, "14": {"facts": [{"label": "Interface type", "value": "emit_log_hook_type"}, {"label": "Header", "value": "src/include/utils/elog.h"}, {"label": "Subsystem", "value": "Logging and function calls"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "release": {"ref": "REL_14_STABLE", "label": "14", "major": "14", "channel": "stable", "revision": "fba35c7c28a567839faba867db0808564c0a66db"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/fba35c7c28a567839faba867db0808564c0a66db/src/include/utils/elog.h#L414", "path": "src/include/utils/elog.h", "label": "Interface declaration", "sha256": "8f99ab04dfd66e72149edd66f8905fb82e7901cb460b37a3d05a697d7cced9ba"}, {"url": "https://github.com/postgres/postgres/blob/fba35c7c28a567839faba867db0808564c0a66db/src/backend/utils/error/elog.c#L106", "path": "src/backend/utils/error/elog.c", "label": "Core definition", "sha256": "440be55bc10cd402b4c5048030568f715023b394bbcf301e2363a218d989a119"}, {"url": "https://github.com/postgres/postgres/blob/fba35c7c28a567839faba867db0808564c0a66db/src/backend/utils/error/elog.c#L1542", "path": "src/backend/utils/error/elog.c", "label": "Call sites", "sha256": "440be55bc10cd402b4c5048030568f715023b394bbcf301e2363a218d989a119"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for intercepting messages before they are sent to the server log. Note that the hook will not get called for messages that are suppressed by log_min_messages. Also note that logging hooks implemented in preload libraries will miss any log messages that are generated before the library is loaded."]}, {"title": "Call sites", "paragraphs": ["src/backend/utils/error/elog.c:1542"]}, {"code": "\t * The log hook has access to both the translated and original English\n\t * error message text, which is passed through to allow it to be used as a\n\t * message identifier. Note that the original text is not available for\n\t * detail, detail_log, hint and context text elements.\n\t */\n\tif (edata->output_to_server && emit_log_hook)\n\t\t(*emit_log_hook) (edata);\n\n\t/* Send to server log, if enabled */\n\tif (edata->output_to_server)\n\t\tsend_message_to_server_log(edata);\n\n\t/* Send to client, if enabled */\n\tif (edata->output_to_client)\n\t\tsend_message_to_frontend(edata);", "title": "Core call context: src/backend/utils/error/elog.c:1536\u20131550", "paragraphs": []}], "signature": "typedef void (*emit_log_hook_type) (ErrorData *edata);\nextern PGDLLIMPORT emit_log_hook_type emit_log_hook;", "description": ["Hook for intercepting messages before they are sent to the server log"]}, "15": {"facts": [{"label": "Interface type", "value": "emit_log_hook_type"}, {"label": "Header", "value": "src/include/utils/elog.h"}, {"label": "Subsystem", "value": "Logging and function calls"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "release": {"ref": "REL_15_STABLE", "label": "15", "major": "15", "channel": "stable", "revision": "0351991b8e7c7b64382e2f30ce581a8f276590a6"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/0351991b8e7c7b64382e2f30ce581a8f276590a6/src/include/utils/elog.h#L414", "path": "src/include/utils/elog.h", "label": "Interface declaration", "sha256": "f7be8967dbbcc5b7902a267809f049651cc318ca37cc23e71c9d255d893feaad"}, {"url": "https://github.com/postgres/postgres/blob/0351991b8e7c7b64382e2f30ce581a8f276590a6/src/backend/utils/error/elog.c#L106", "path": "src/backend/utils/error/elog.c", "label": "Core definition", "sha256": "a5dc1346bd392167f7d06dd48498ccdc4fb8665724b0296fe6439e9224bf0d8a"}, {"url": "https://github.com/postgres/postgres/blob/0351991b8e7c7b64382e2f30ce581a8f276590a6/src/backend/utils/error/elog.c#L1537", "path": "src/backend/utils/error/elog.c", "label": "Call sites", "sha256": "a5dc1346bd392167f7d06dd48498ccdc4fb8665724b0296fe6439e9224bf0d8a"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for intercepting messages before they are sent to the server log. Note that the hook will not get called for messages that are suppressed by log_min_messages. Also note that logging hooks implemented in preload libraries will miss any log messages that are generated before the library is loaded."]}, {"title": "Call sites", "paragraphs": ["src/backend/utils/error/elog.c:1537"]}, {"code": "\t * The log hook has access to both the translated and original English\n\t * error message text, which is passed through to allow it to be used as a\n\t * message identifier. Note that the original text is not available for\n\t * detail, detail_log, hint and context text elements.\n\t */\n\tif (edata->output_to_server && emit_log_hook)\n\t\t(*emit_log_hook) (edata);\n\n\t/* Send to server log, if enabled */\n\tif (edata->output_to_server)\n\t\tsend_message_to_server_log(edata);\n\n\t/* Send to client, if enabled */\n\tif (edata->output_to_client)\n\t\tsend_message_to_frontend(edata);", "title": "Core call context: src/backend/utils/error/elog.c:1531\u20131545", "paragraphs": []}], "signature": "typedef void (*emit_log_hook_type) (ErrorData *edata);\nextern PGDLLIMPORT emit_log_hook_type emit_log_hook;", "description": ["Hook for intercepting messages before they are sent to the server log"]}, "16": {"facts": [{"label": "Interface type", "value": "emit_log_hook_type"}, {"label": "Header", "value": "src/include/utils/elog.h"}, {"label": "Subsystem", "value": "Logging and function calls"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "release": {"ref": "REL_16_STABLE", "label": "16", "major": "16", "channel": "stable", "revision": "dcc37b7099a9f3cf2c75167d8dc92e75f96bc1fa"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/dcc37b7099a9f3cf2c75167d8dc92e75f96bc1fa/src/include/utils/elog.h#L486", "path": "src/include/utils/elog.h", "label": "Interface declaration", "sha256": "4c95e20f76f4fef6b28721731754370b90668b8a90a4d858575a9bbd2e787908"}, {"url": "https://github.com/postgres/postgres/blob/dcc37b7099a9f3cf2c75167d8dc92e75f96bc1fa/src/backend/utils/error/elog.c#L108", "path": "src/backend/utils/error/elog.c", "label": "Core definition", "sha256": "d4f8c83b483302515d3079ecca8817d6c0c69b26b35ff126970098841891aef8"}, {"url": "https://github.com/postgres/postgres/blob/dcc37b7099a9f3cf2c75167d8dc92e75f96bc1fa/src/backend/utils/error/elog.c#L1719", "path": "src/backend/utils/error/elog.c", "label": "Call sites", "sha256": "d4f8c83b483302515d3079ecca8817d6c0c69b26b35ff126970098841891aef8"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for intercepting messages before they are sent to the server log. Note that the hook will not get called for messages that are suppressed by log_min_messages. Also note that logging hooks implemented in preload libraries will miss any log messages that are generated before the library is loaded."]}, {"title": "Call sites", "paragraphs": ["src/backend/utils/error/elog.c:1719"]}, {"code": "\t * The log hook has access to both the translated and original English\n\t * error message text, which is passed through to allow it to be used as a\n\t * message identifier. Note that the original text is not available for\n\t * detail, detail_log, hint and context text elements.\n\t */\n\tif (edata->output_to_server && emit_log_hook)\n\t\t(*emit_log_hook) (edata);\n\n\t/* Send to server log, if enabled */\n\tif (edata->output_to_server)\n\t\tsend_message_to_server_log(edata);\n\n\t/* Send to client, if enabled */\n\tif (edata->output_to_client)\n\t\tsend_message_to_frontend(edata);", "title": "Core call context: src/backend/utils/error/elog.c:1713\u20131727", "paragraphs": []}], "signature": "typedef void (*emit_log_hook_type) (ErrorData *edata);\nextern PGDLLIMPORT emit_log_hook_type emit_log_hook;", "description": ["Hook for intercepting messages before they are sent to the server log"]}, "17": {"facts": [{"label": "Interface type", "value": "emit_log_hook_type"}, {"label": "Header", "value": "src/include/utils/elog.h"}, {"label": "Subsystem", "value": "Logging and function calls"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "release": {"ref": "REL_17_STABLE", "label": "17", "major": "17", "channel": "stable", "revision": "163288afd32a448244c8df75b3c33181aadd7f20"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/163288afd32a448244c8df75b3c33181aadd7f20/src/include/utils/elog.h#L486", "path": "src/include/utils/elog.h", "label": "Interface declaration", "sha256": "e6b0864bf3fae574d5f6676ca3797dd7bccd70b69b5ebf1a0cdb86f635853e0d"}, {"url": "https://github.com/postgres/postgres/blob/163288afd32a448244c8df75b3c33181aadd7f20/src/backend/utils/error/elog.c#L107", "path": "src/backend/utils/error/elog.c", "label": "Core definition", "sha256": "c0fa4ad0198a13bd121080688b81d1faf8a352fb0852b01675b090f50c4db55c"}, {"url": "https://github.com/postgres/postgres/blob/163288afd32a448244c8df75b3c33181aadd7f20/src/backend/utils/error/elog.c#L1724", "path": "src/backend/utils/error/elog.c", "label": "Call sites", "sha256": "c0fa4ad0198a13bd121080688b81d1faf8a352fb0852b01675b090f50c4db55c"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for intercepting messages before they are sent to the server log. Note that the hook will not get called for messages that are suppressed by log_min_messages. Also note that logging hooks implemented in preload libraries will miss any log messages that are generated before the library is loaded."]}, {"title": "Call sites", "paragraphs": ["src/backend/utils/error/elog.c:1724"]}, {"code": "\t * The log hook has access to both the translated and original English\n\t * error message text, which is passed through to allow it to be used as a\n\t * message identifier. Note that the original text is not available for\n\t * detail, detail_log, hint and context text elements.\n\t */\n\tif (edata->output_to_server && emit_log_hook)\n\t\t(*emit_log_hook) (edata);\n\n\t/* Send to server log, if enabled */\n\tif (edata->output_to_server)\n\t\tsend_message_to_server_log(edata);\n\n\t/* Send to client, if enabled */\n\tif (edata->output_to_client)\n\t\tsend_message_to_frontend(edata);", "title": "Core call context: src/backend/utils/error/elog.c:1718\u20131732", "paragraphs": []}], "signature": "typedef void (*emit_log_hook_type) (ErrorData *edata);\nextern PGDLLIMPORT emit_log_hook_type emit_log_hook;", "description": ["Hook for intercepting messages before they are sent to the server log"]}, "18": {"facts": [{"label": "Interface type", "value": "emit_log_hook_type"}, {"label": "Header", "value": "src/include/utils/elog.h"}, {"label": "Subsystem", "value": "Logging and function calls"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "release": {"ref": "REL_18_STABLE", "label": "18", "major": "18", "channel": "stable", "revision": "753057e340da8f22e57c9a409ea7a235fd6a46bd"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/include/utils/elog.h#L477", "path": "src/include/utils/elog.h", "label": "Interface declaration", "sha256": "3485d4a046bd4fcc5f5887f7ea9badc3f430f1bd67c4b103d3e3a6fa54b38bc0"}, {"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/utils/error/elog.c#L106", "path": "src/backend/utils/error/elog.c", "label": "Core definition", "sha256": "766d30a426ba1d9597657bd46fb890da3e37e4ae53a83d1245bf082ed9433c33"}, {"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/utils/error/elog.c#L1729", "path": "src/backend/utils/error/elog.c", "label": "Call sites", "sha256": "766d30a426ba1d9597657bd46fb890da3e37e4ae53a83d1245bf082ed9433c33"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for intercepting messages before they are sent to the server log. Note that the hook will not get called for messages that are suppressed by log_min_messages. Also note that logging hooks implemented in preload libraries will miss any log messages that are generated before the library is loaded."]}, {"title": "Call sites", "paragraphs": ["src/backend/utils/error/elog.c:1729"]}, {"code": "\t * The log hook has access to both the translated and original English\n\t * error message text, which is passed through to allow it to be used as a\n\t * message identifier. Note that the original text is not available for\n\t * detail, detail_log, hint and context text elements.\n\t */\n\tif (edata->output_to_server && emit_log_hook)\n\t\t(*emit_log_hook) (edata);\n\n\t/* Send to server log, if enabled */\n\tif (edata->output_to_server)\n\t\tsend_message_to_server_log(edata);\n\n\t/* Send to client, if enabled */\n\tif (edata->output_to_client)\n\t\tsend_message_to_frontend(edata);", "title": "Core call context: src/backend/utils/error/elog.c:1723\u20131737", "paragraphs": []}], "signature": "typedef void (*emit_log_hook_type) (ErrorData *edata);\nextern PGDLLIMPORT emit_log_hook_type emit_log_hook;", "description": ["Hook for intercepting messages before they are sent to the server log"]}, "19": {"facts": [{"label": "Interface type", "value": "emit_log_hook_type"}, {"label": "Header", "value": "src/include/utils/elog.h"}, {"label": "Subsystem", "value": "Logging and function calls"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "release": {"ref": "REL_19_BETA4", "label": "19 Beta 4", "major": "19", "channel": "preview", "revision": "b73d13c32c834a2c8e1c60cb92f79530376cedf1"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/b73d13c32c834a2c8e1c60cb92f79530376cedf1/src/include/utils/elog.h#L480", "path": "src/include/utils/elog.h", "label": "Interface declaration", "sha256": "36914fc647492beb991733b46f9bef72f21aaf138343d109919416ed36b6bc80"}, {"url": "https://github.com/postgres/postgres/blob/b73d13c32c834a2c8e1c60cb92f79530376cedf1/src/backend/utils/error/elog.c#L111", "path": "src/backend/utils/error/elog.c", "label": "Core definition", "sha256": "ed152ca45e2be564006d9b415415ae025724062b36dea97699bd78f8a611063b"}, {"url": "https://github.com/postgres/postgres/blob/b73d13c32c834a2c8e1c60cb92f79530376cedf1/src/backend/utils/error/elog.c#L1920", "path": "src/backend/utils/error/elog.c", "label": "Call sites", "sha256": "ed152ca45e2be564006d9b415415ae025724062b36dea97699bd78f8a611063b"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for intercepting messages before they are sent to the server log. Note that the hook will not get called for messages that are suppressed by log_min_messages. Also note that logging hooks implemented in preload libraries will miss any log messages that are generated before the library is loaded."]}, {"title": "Call sites", "paragraphs": ["src/backend/utils/error/elog.c:1920"]}, {"code": "\t * The log hook has access to both the translated and original English\n\t * error message text, which is passed through to allow it to be used as a\n\t * message identifier. Note that the original text is not available for\n\t * detail, detail_log, hint and context text elements.\n\t */\n\tif (edata->output_to_server && emit_log_hook)\n\t\t(*emit_log_hook) (edata);\n\n\t/* Send to server log, if enabled */\n\tif (edata->output_to_server)\n\t\tsend_message_to_server_log(edata);\n\n\t/* Send to client, if enabled */\n\tif (edata->output_to_client)\n\t\tsend_message_to_frontend(edata);", "title": "Core call context: src/backend/utils/error/elog.c:1914\u20131928", "paragraphs": []}], "signature": "typedef void (*emit_log_hook_type) (ErrorData *edata);\nextern PGDLLIMPORT emit_log_hook_type emit_log_hook;", "description": ["Hook for intercepting messages before they are sent to the server log"]}, "20": {"facts": [{"label": "Interface type", "value": "emit_log_hook_type"}, {"label": "Header", "value": "src/include/utils/elog.h"}, {"label": "Subsystem", "value": "Logging and function calls"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "release": {"ref": "master", "label": "20 devel", "major": "20", "channel": "devel", "revision": "2c10c2ce4d7bcd57543a49ab402af02a39724e0a"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/2c10c2ce4d7bcd57543a49ab402af02a39724e0a/src/include/utils/elog.h#L480", "path": "src/include/utils/elog.h", "label": "Interface declaration", "sha256": "36914fc647492beb991733b46f9bef72f21aaf138343d109919416ed36b6bc80"}, {"url": "https://github.com/postgres/postgres/blob/2c10c2ce4d7bcd57543a49ab402af02a39724e0a/src/backend/utils/error/elog.c#L111", "path": "src/backend/utils/error/elog.c", "label": "Core definition", "sha256": "247cfc468d376dcdd5557d303cea0f1e950830ccb7bd0443c637e95ac8c1067f"}, {"url": "https://github.com/postgres/postgres/blob/2c10c2ce4d7bcd57543a49ab402af02a39724e0a/src/backend/utils/error/elog.c#L1920", "path": "src/backend/utils/error/elog.c", "label": "Call sites", "sha256": "247cfc468d376dcdd5557d303cea0f1e950830ccb7bd0443c637e95ac8c1067f"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for intercepting messages before they are sent to the server log. Note that the hook will not get called for messages that are suppressed by log_min_messages. Also note that logging hooks implemented in preload libraries will miss any log messages that are generated before the library is loaded."]}, {"title": "Call sites", "paragraphs": ["src/backend/utils/error/elog.c:1920"]}, {"code": "\t * The log hook has access to both the translated and original English\n\t * error message text, which is passed through to allow it to be used as a\n\t * message identifier. Note that the original text is not available for\n\t * detail, detail_log, hint and context text elements.\n\t */\n\tif (edata->output_to_server && emit_log_hook)\n\t\t(*emit_log_hook) (edata);\n\n\t/* Send to server log, if enabled */\n\tif (edata->output_to_server)\n\t\tsend_message_to_server_log(edata);\n\n\t/* Send to client, if enabled */\n\tif (edata->output_to_client)\n\t\tsend_message_to_frontend(edata);", "title": "Core call context: src/backend/utils/error/elog.c:1914\u20131928", "paragraphs": []}], "signature": "typedef void (*emit_log_hook_type) (ErrorData *edata);\nextern PGDLLIMPORT emit_log_hook_type emit_log_hook;", "description": ["Hook for intercepting messages before they are sent to the server log"]}}, "content_hash": "d7872f897b49960c2b5cee5826b987e2dabda39df3d919b29cf6551aa2a3b9ee", "imported_at": "2026-09-27T09:57:58.841"}, "snapshot": {"facts": [{"label": "Interface type", "value": "emit_log_hook_type"}, {"label": "Header", "value": "src/include/utils/elog.h"}, {"label": "Subsystem", "value": "Logging and function calls"}, {"label": "Initial value", "value": "NULL (no hook installed)"}], "related": [], "release": {"ref": "REL_18_STABLE", "label": "18", "major": "18", "channel": "stable", "revision": "753057e340da8f22e57c9a409ea7a235fd6a46bd"}, "sources": [{"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/include/utils/elog.h#L477", "path": "src/include/utils/elog.h", "label": "Interface declaration", "sha256": "3485d4a046bd4fcc5f5887f7ea9badc3f430f1bd67c4b103d3e3a6fa54b38bc0"}, {"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/utils/error/elog.c#L106", "path": "src/backend/utils/error/elog.c", "label": "Core definition", "sha256": "766d30a426ba1d9597657bd46fb890da3e37e4ae53a83d1245bf082ed9433c33"}, {"url": "https://github.com/postgres/postgres/blob/753057e340da8f22e57c9a409ea7a235fd6a46bd/src/backend/utils/error/elog.c#L1729", "path": "src/backend/utils/error/elog.c", "label": "Call sites", "sha256": "766d30a426ba1d9597657bd46fb890da3e37e4ae53a83d1245bf082ed9433c33"}], "sections": [{"title": "Core source comments", "paragraphs": ["Hook for intercepting messages before they are sent to the server log. Note that the hook will not get called for messages that are suppressed by log_min_messages. Also note that logging hooks implemented in preload libraries will miss any log messages that are generated before the library is loaded."]}, {"title": "Call sites", "paragraphs": ["src/backend/utils/error/elog.c:1729"]}, {"code": "\t * The log hook has access to both the translated and original English\n\t * error message text, which is passed through to allow it to be used as a\n\t * message identifier. Note that the original text is not available for\n\t * detail, detail_log, hint and context text elements.\n\t */\n\tif (edata->output_to_server && emit_log_hook)\n\t\t(*emit_log_hook) (edata);\n\n\t/* Send to server log, if enabled */\n\tif (edata->output_to_server)\n\t\tsend_message_to_server_log(edata);\n\n\t/* Send to client, if enabled */\n\tif (edata->output_to_client)\n\t\tsend_message_to_frontend(edata);", "title": "Core call context: src/backend/utils/error/elog.c:1723\u20131737", "paragraphs": []}], "signature": "typedef void (*emit_log_hook_type) (ErrorData *edata);\nextern PGDLLIMPORT emit_log_hook_type emit_log_hook;", "description": ["Hook for intercepting messages before they are sent to the server log"]}, "comparison": {"left": "17", "right": "18", "status": "unchanged", "diff": ""}}