서버 내에서 생성된 토토 사이트, 경고 및 로그 메시지
코드는 다음을 사용하여 생성되어야 합니다.ereport또는 그 사촌elog. 이 기능의 사용은 복잡합니다
설명이 필요할 만큼 충분합니다.
모든 메시지에는 두 가지 필수 요소가 있습니다: 심각도
레벨(범위:디버그에패닉) 및 기본 메시지 텍스트입니다. 게다가
선택적 요소가 있으며 그 중 가장 일반적인 것은 토토 사이트입니다.
SQL 사양의 SQLSTATE 규칙을 따르는 식별자 코드입니다.ereport그 자체는 단지 껍질일 뿐입니다
주로 구문상의 편의를 위해 존재하는 함수입니다.
메시지 생성을 C의 함수 호출처럼 보이게 만들기
소스 코드. 에서 직접 허용하는 유일한 매개변수ereport은 심각도 수준입니다. 기본
메시지 텍스트 및 선택적 메시지 요소는 다음에 의해 생성됩니다.
다음과 같은 보조 기능 호출errmsg, 내부ereport전화하세요.
일반적인 호출ereport아마도
다음과 같습니다:
ereport(토토 사이트,
(errcode(ERRCODE_DIVISION_BY_ZERO),
errmsg("0으로 나누기")));
토토 사이트 심각도 수준을 지정합니다.토토 사이트(평범한 토토 사이트). 그만큼124PostgreSQL: 문서: 7.4: 서버 내 토토 사이트 보고52호출이 SQLSTATE 토토 사이트 코드를 지정합니다.
에 정의된 매크로 사용src/include/utils/errcodes.h. 그만큼errmsgcall은 기본 메시지 텍스트를 제공합니다.
보조 문자를 둘러싼 추가 괄호 세트에 주목하세요.
함수 호출 --- 성가시지만 구문적으로는
필요한.
여기에 더 복잡한 예가 있습니다:
ereport(토토 사이트,
(errcode(ERRCODE_AMBIGUOUS_FUNCTION),
errmsg("%s 함수는 고유하지 않습니다.",
func_signature_string(funcname, nargs,
실제_인수_유형)),
errint("최적의 후보 함수를 선택할 수 없습니다. "
"명시적인 유형 변환을 추가해야 할 수도 있습니다.")));
이것은 런타임 삽입을 위한 형식 코드의 사용을 보여줍니다. 값을 메시지 텍스트로 변환합니다. 또한 선택사항입니다."힌트"메시지가 제공됩니다.
다음에 사용 가능한 보조 루틴ereport다음은:
errcode(sqlerrcode)
에 대한 SQLSTATE 토토 사이트 식별자 코드를 지정합니다.
상태. 이 루틴이 호출되지 않으면 토토 사이트가 발생합니다.
식별자의 기본값은ERRCODE_INTERNAL_ERROR토토 사이트 심각도가
레벨은토토 사이트이상,ERRCODE_WARNING토토 사이트 수준이 다음과 같은 경우경고, 그렇지 않은 경우(for공지이하)ERRCODE_SUCCESSFUL_COMPLETION. 반면 이것들은
기본값은 편리한 경우가 많습니다. 항상 기본값이 맞는지 생각해 보세요.
를 생략하기 전에 적절함errcode() 전화.
errmsg(const char *msg, ...)
주요 토토 사이트 메시지 텍스트를 지정합니다.
삽입할 런타임 값입니다. 삽입이 지정됨
에 의해스프린트f-스타일 형식 코드.
다음에서 허용하는 표준 형식 코드 외에스프린트f, 형식 코드%m토토 사이트를 삽입하는 데 사용할 수 있습니다.
에서 반환한 메시지strerror현재 값에 대해errno.
[1] %m다음에 해당 항목이 필요하지 않습니다.
매개변수 목록errmsg.
메시지 문자열이 실행됩니다.gettext이전 현지화 가능
형식 코드가 처리됩니다.
errmsg_internal(상수 문자
*msg, ...)는와 동일합니다.errmsg, 단, 메시지 문자열은
번역되거나 국제화에 포함되지 않습니다.
메시지 사전. 이것은 다음 용도로 사용되어야 합니다."일어날 수 없는 일입니다"아마도 그렇지 않은 경우
번역 노력을 기울일 가치가 있습니다.
errdetail(const char *msg,
...) 선택 사항을 제공합니다."세부사항"메시지; 추가 사항이 있을 때 사용됩니다.
기본 정보에 넣기에 부적절해 보이는 정보
메시지. 메시지 문자열은 동일한 방식으로 처리됩니다.
에 관해서는errmsg.
errint(const char *msg,
...) 선택 사항을 제공합니다."힌트"메시지; 이는 다음에 대한 제안을 제공할 때 사용됩니다.
문제에 대한 사실적 세부정보가 아닌 문제를 해결하는 방법
무엇이 잘못됐나요? 메시지 문자열은 다음과 같이 처리됩니다.
와 같은 방식으로errmsg.
errcontext(const char *msg,
...)는 일반적으로에서 직접 호출되지 않습니다.ereport메시지 사이트; 오히려 그것은에서 사용됩니다error_context_stack콜백
상황에 대한 정보를 제공하는 기능
PL의 현재 위치와 같은 토토 사이트가 발생했습니다.
기능. 메시지 문자열은 동일한 방식으로 처리됩니다.
방법은errmsg. 와 달리
다른 보조 기능은 두 번 이상 호출할 수 있습니다.
당ereport전화; 그만큼
따라서 제공된 연속 문자열은 다음과 연결됩니다.
개행을 분리합니다.
토토 사이트(int 커서pos)
쿼리 내 토토 사이트의 텍스트 위치를 지정합니다.
끈. 현재는 다음에서 감지된 토토 사이트에만 유용합니다.
쿼리의 어휘 및 구문 분석 단계
처리 중입니다.
errcode_for_file_access()는
적절한 SQLSTATE를 선택하는 편의 함수
파일 액세스 관련 토토 사이트에 대한 토토 사이트 식별자
시스템 호출. 저장된 것을 사용합니다errno생성할 토토 사이트 코드를 결정합니다. 보통 이
와 함께 사용해야 합니다.%m기본 토토 사이트 메시지 텍스트에.
errcode_for_socket_access()
적절한 것을 선택하는 편의 기능입니다.
소켓 관련 토토 사이트에 대한 SQLSTATE 토토 사이트 식별자
시스템 호출.
이전 기능이 있습니다elog아직도 많이 사용되고 있습니다. 안elog전화
elog(레벨, "형식 문자열", ...);
정확히는와 동일합니다.
ereport(level, (errmsg_internal("형식 문자열", ...)));
SQLSTATE 토토 사이트 코드는 항상 기본값이며
메시지 문자열은 번역 대상이 아닙니다. 그러므로,elog다음 용도로만 사용해야 합니다.
내부 토토 사이트 및 낮은 수준의 디버그 로깅. 어떤 메시지라도
일반 사용자가 관심을 가질 가능성이 있는 내용은 반드시 거쳐야 합니다.ereport. 그럼에도 불구하고
내부적으로는 충분함"일어날 수 없는 일입니다"토토 사이트
시스템에서 확인합니다.elog입니다
아직도 널리 사용되고 있습니다. 해당 메시지에 대해 선호됩니다.
표기법의 단순함.
좋은 토토 사이트 메시지 작성에 대한 조언은 다음에서 찾을 수 있습니다.PostgreSQL : 문서 : 7.4 : 오류 토토 핫 스타일 안내서.
| [1] |
즉, 당시의 현재 값은 |