Postgresql 9.2.24 Tài liệu | ||||
---|---|---|---|---|
Prev | UP | Chương 47. PostgreSql Coding quy ước | Tiếp theo |
kèo chấp bóng đá hôm nay, cảnh báo và tin nhắn nhật ký được tạo trong máy chủ
Mã phải được tạo bằng cách sử dụngEREPORT
hoặc anh em họ cũ của nóELOG
. Việc sử dụng chức năng này rất phức tạp
đủ để yêu cầu một số giải thích.
Có hai yếu tố bắt buộc cho mỗi thông kèo chấp bóng đá hôm nay: Mức độ nghiêm trọng
Cấp độ (từDebugđếnPanic) và một văn bản tin nhắn chính. Ngoài ra
Có các yếu tố tùy chọn, phổ biến nhất là kèo chấp bóng đá hôm nay
Mã định danh tuân theo các quy ước SQLState của SQL Spec.EREPORT
Bản thân nó chỉ là một vỏ
chức năng, tồn tại chủ yếu để thuận tiện cho cú pháp của
Làm cho việc tạo tin nhắn trông giống như một cuộc gọi chức năng kèo chấp bóng đá hôm nay c
Mã nguồn. Tham số duy nhất được chấp nhận trực tiếp bởiEREPORT
là mức độ nghiêm trọng. Chính
văn bản tin nhắn và bất kỳ yếu tố tin nhắn tùy chọn nào được tạo bởi
Gọi các chức năng phụ trợ, chẳng hạn nhưerrmsg
, kèo chấp bóng đá hôm nayEREPORT
cuộc gọi.
Một cuộc gọi điển hình đếnEREPORT
có thể
trông giống như thế này:
EREPORT (kèo chấp bóng đá hôm nay, (errcode (errcode_division_by_zero), errmsg ("Division by Zero")));
Điều này chỉ định mức độ nghiêm trọng của kèo chấp bóng đá hôm nayERROR(một kèo chấp bóng đá hôm nay chạy bộ). Theerrcode
12454_12523SRC/bao gồm/Utils/errcodes.h. Theerrmsg
cuộc gọi cung cấp văn bản tin nhắn chính.
Chú ý tập hợp thêm các dấu ngoặc đơn xung quanh phụ trợ
Các cuộc gọi chức năng - Đây là những khó chịu nhưng về mặt cú pháp
cần thiết.
Đây là một ví dụ phức tạp hơn:
EREPORT (kèo chấp bóng đá hôm nay, (errcode (errcode_ambiguter_function), errmsg ("hàm %s không phải là duy nhất", func_signature_string (funcname, nargs, Nil, thực tế_arg_types)), Errhint ("Không thể chọn chức năng ứng cử viên tốt nhất." "Bạn có thể cần thêm typecasts rõ ràng.")));
Điều này minh họa việc sử dụng mã định dạng để nhúng thời gian chạy giá trị thành một văn bản tin nhắn. Ngoài ra, một tùy chọn"Gợi ý"Tin nhắn được cung cấp.
Các thói quen phụ trợ có sẵn choEREPORT
là:
errcode (sqlerrcode)
Chỉ định mã định danh kèo chấp bóng đá hôm nay SQLSTATE cho
tình trạng. Nếu thói quen này không được gọi, kèo chấp bóng đá hôm nay
định danh mặc định làerrCode_Internal_errorKhi mức độ nghiêm trọng của kèo chấp bóng đá hôm nay
Cấp độERRORhoặc cao hơn,errcode_warningKhi mức kèo chấp bóng đá hôm nay làCảnh kèo chấp bóng đá hôm nay, nếu không (choThông kèo chấp bóng đá hôm nayvà bên dưới)errCode_successful_completion. kèo chấp bóng đá hôm nay khi những điều này
mặc định thường thuận tiện, luôn luôn nghĩ rằng họ có phải là
thích hợp trước khi bỏ quaerrcode ()
14263_14271
errmsg (const char *msg, ...)
Chỉ định văn bản thông báo kèo chấp bóng đá hôm nay chính và có thể
giá trị thời gian chạy để chèn vào nó. Chèn được chỉ định
quaSprintf
-Style Mã định dạng.
Ngoài các mã định dạng tiêu chuẩn được kèo chấp bóng đá hôm nay nhận bởiSprintf
, Mã định dạng%mcó thể được sử dụng để chèn kèo chấp bóng đá hôm nay
Tin nhắn được trả về bởiStrerror
Đối với giá trị hiện tại củaerrno.
[1] %mKhông yêu cầu bất kỳ mục tương ứng nào kèo chấp bóng đá hôm nay
danh sách tham số choerrmsg
.
Lưu ý rằng chuỗi tin nhắn sẽ được chạy quaGetText
Để định vị có thể trước khi
Mã định dạng được xử lý.
15344_15389
giống nhưerrmsg
, ngoại trừ chuỗi tin nhắn sẽ
không được dịch cũng không được bao gồm kèo chấp bóng đá hôm nay quốc tế hóa
Từ điển tin nhắn. Điều này nên được sử dụng cho"Không thể xảy ra"Các trường hợp có lẽ không
Đáng giá để sử dụng nỗ lực dịch trên.
errmsg_plural (const char
*fmt_singular, const char *fmt_plural, không dấu dài n,
...)
giống nhưerrmsg
, nhưng
với sự hỗ trợ cho các hình thức số nhiều khác nhau của thông điệp.fmt_singularlà tiếng Anh
Định dạng số ít,fmt_plurallà định dạng số nhiều tiếng Anh,n16208_16403Phần 48.2.2.
errdetail (const char *msg,
...)
16573_16597"Chi tiết"Tin nhắn; Điều này sẽ được sử dụng khi
có thêm thông tin có vẻ không phù hợp với
đặt vào thông điệp chính. Chuỗi tin nhắn được xử lý
theo cách tương tự như choerrmsg
.
...)
giống nhưerrdetail
, ngoại trừ chuỗi tin nhắn
sẽ không được dịch cũng như không bao gồm kèo chấp bóng đá hôm nay
Từ điển thông điệp quốc tế hóa. Điều này nên được sử dụng
Để biết chi tiết các thông điệp không đáng để sử dụng dịch
nỗ lực, ví dụ vì chúng quá kỹ thuật để
hữu ích cho hầu hết người dùng.
errdetail_plural (const char
*fmt_singular, const char *fmt_plural, không dấu dài n,
...)
giống nhưerrdetail
,,
Nhưng với sự hỗ trợ cho các hình thức số nhiều khác nhau của thông điệp. Vì
Thêm thông tin xemPhần 48.2.2.
errdetail_log (const char *msg,
...)
giống nhưerrdetail
Ngoại trừ chuỗi này chỉ đi
đến nhật ký kèo chấp bóng đá hôm nay chủ, không bao giờ với kèo chấp bóng đá hôm nay khách. Nếu cả haierrdetail
(hoặc một kèo chấp bóng đá hôm nay những tương đương của nó ở trên)
Vàerrdetail_log
được sử dụng sau đó
Một chuỗi đi đến máy khách và chuỗi kia vào nhật ký. Cái này
rất hữu ích cho các chi tiết kèo chấp bóng đá hôm nay quá nhạy cảm với bảo mật
hoặc quá cồng kềnh để đưa vào báo cáo được gửi cho khách hàng.
errhint (const char *msg,
...)
Cung cấp tùy chọn"Gợi ý"Tin nhắn; Điều này sẽ được sử dụng khi
đưa ra đề xuất về cách khắc phục sự cố, trái ngược
để chi tiết thực tế về những gì đã sai. Chuỗi tin nhắn
được xử lý theo cách tương tự nhưerrmsg
.
errcontext (const char *msg,
...)
Thông thường không được gọi trực tiếp từEREPORT
Trang web tin nhắn; đúng hơn là nó
được sử dụng kèo chấp bóng đá hôm nayerror_context_stackCác chức năng gọi lại để cung cấp thông tin về ngữ cảnh
trong đó xảy ra kèo chấp bóng đá hôm nay, chẳng hạn như vị trí hiện tại trong một
Hàm PL. Chuỗi tin nhắn được xử lý chỉ giống nhau
Cách như choerrmsg
19293_19385EREPORT
cuộc gọi; các
do đó các chuỗi liên tiếp được cung cấp được kết hợp với
Tách Newline.
errPoseition (int cursorpos)
Chỉ định vị trí văn bản của kèo chấp bóng đá hôm nay trong truy vấn
sợi dây. Hiện tại nó chỉ hữu ích cho các kèo chấp bóng đá hôm nay được phát hiện trong
các giai đoạn phân tích từ vựng và cú pháp của truy vấn
xử lý.
errcode_for_file_access ()
IS
một chức năng thuận tiện chọn một sqlstate thích hợp
Mã định danh kèo chấp bóng đá hôm nay cho kèo chấp bóng đá hôm nay trong truy cập tệp liên quan đến truy cập tệp
cuộc gọi hệ thống. Nó sử dụng đã lưuerrnoĐể xác định mã kèo chấp bóng đá hôm nay nào sẽ tạo. Thường là điều này
nên được sử dụng kết hợp với%mTrong văn bản thông báo kèo chấp bóng đá hôm nay chính.
errcode_for_socket_access ()
20364_20511
errHidestMt (bool hid_stmt)
Có thể được gọi để chỉ định việc đàn ápTuyên bố:phần của tin nhắn kèo chấp bóng đá hôm nay
Nhật ký Postmaster. Nói chung điều này là phù hợp nếu tin nhắn
văn bản bao gồm câu lệnh hiện tại.
Có một hàm cũELOG
Điều đó vẫn được sử dụng rất nhiều. MỘTELOG
cuộc gọi:
ELOG (cấp, "Chuỗi định dạng", ...);
hoàn toàn tương đương với:
21149_21209
Lưu ý rằng mã kèo chấp bóng đá hôm nay SQLSTATE luôn được mặc định và
Chuỗi tin nhắn không phải là dịch. Vì thế,ELOG
chỉ nên sử dụng
kèo chấp bóng đá hôm nay nội bộ và ghi nhật ký gỡ kèo chấp bóng đá hôm nay cấp thấp. Bất kỳ thông báo nào là
có khả năng được người dùng thông thường quan tâmEREPORT
. Tuy nhiên, có
đủ nội bộ"Không thể xảy ra"kèo chấp bóng đá hôm nay
kiểm tra trong hệ thốngELOG
IS
vẫn được sử dụng rộng rãi; nó được ưa thích cho những tin nhắn đó cho nó
Đơn giản chứng minh.
21831_21892Phần 47.3.
[1] |
nghĩa là giá trị hiện tại khi |