跳轉到內容

Zoph/解決問題/除錯

來自華夏公益教科書,開放的書籍,開放的世界

如果出現問題,Zoph 的常規錯誤報告無法提供足夠的資訊來解決問題,您可以啟用除錯。除錯透過 config.inc.php 中的 3 個不同選項控制。

這將允許進行細粒度的除錯。這種除錯機制將使您能夠控制顯示哪些訊息,而不顯示哪些訊息。由於日誌記錄將在 Zoph 處理頁面時生成,因此除錯訊息將顯示在整個頁面上。這有時會導致 Javascript、XML 或重定向停止工作,但是,這也將使您更容易找出問題發生的位置。

日誌主題

[編輯 | 編輯原始碼]

每個日誌訊息都已在主題中分類。

訊息主題
log::ALL 所有訊息
log::VARS 有關設定變數的訊息
log::LANG 有關 Zoph 翻譯的訊息
log::LOGIN 有關登入過程的訊息
log::REDIRECT 有關重定向的訊息
log::DB 有關資料庫連線的訊息
log::SQL 有關 SQL 查詢的訊息
log::XML 有關 XML 建立的訊息
log::IMG 有關影像建立的訊息
log::IMPORT 有關匯入功能的訊息
log::GENERAL 其他訊息
log::NONE 無訊息。

日誌嚴重性

[編輯 | 編輯原始碼]

每個訊息都得到了一個嚴重性指示,指示情況的“嚴重程度”。

嚴重性指示
log::DEBUG 除錯訊息,Zoph 提供有關其操作的資訊。
log::NOTIFY 有關正在發生的事件的通知,這些事件會影響 Zoph 的程式流程。
log::WARN 有關正在發生的事件的警告。
log::ERROR 錯誤情況,出現問題,但 Zoph 可以恢復。
log::FATAL 致命錯誤,出現問題,Zoph 需要停止當前指令碼的執行。
log::NONE 不顯示任何訊息。

如前所述,已向config.inc.php.

LOG_ALWAYS

添加了 3 個新的配置選項。

[編輯 | 編輯原始碼]

此設定配置始終顯示的日誌級別,無論訊息位於哪個主題中。預設情況下,此設定設定為 log::FATAL,這意味著任何嚴重性為 FATAL 或更糟 的訊息都將顯示。由於 log::FATAL 是最糟糕的訊息型別,因此只會顯示 log::FATAL 訊息。如果您將其設定為 log::WARN,則任何嚴重性為 WARN 或更糟 的訊息都將顯示,因此將顯示任何 FATALERRORWARN 訊息。已新增一個特殊的嚴重性級別來抑制所有訊息:log::NONE

示例
define('LOG_ALWAYS', log::ERROR);

[編輯 | 編輯原始碼]

define('LOG_ALWAYS', log::NOTIFY);

將顯示所有指示錯誤或致命錯誤的訊息。

define('LOG_ALWAYS', log::DEBUG);

將顯示所有訊息,除了除錯級別訊息。

LOG_SEVERITY

將顯示所有訊息。

[編輯 | 編輯原始碼]

此設定配置始終顯示的日誌級別,無論訊息位於哪個主題中。預設情況下,此設定設定為 log::FATAL,這意味著任何嚴重性為 FATAL 或更糟 的訊息都將顯示。由於 log::FATAL 是最糟糕的訊息型別,因此只會顯示 log::FATAL 訊息。如果您將其設定為 log::WARN,則任何嚴重性為 WARN 或更糟 的訊息都將顯示,因此將顯示任何 FATALERRORWARN 訊息。已新增一個特殊的嚴重性級別來抑制所有訊息:log::NONE

此設定的工作方式與上一個設定相同,只是它只會顯示特定嚴重性的訊息;它與 LOG_SUBJECT 結合使用以實現此目的。
define('LOG_SEVERITY', log::ERROR);
define('LOG_SUBJECT', log::LANG);

[編輯 | 編輯原始碼]

define('LOG_SEVERITY', log::NOTIFY);
define('LOG_SUBJECT', log::DB);

將顯示所有指示錯誤或致命錯誤,以及有關 Zoph 翻譯的訊息。

define('LOG_SEVERITY', log::DEBUG);
define('LOG_SUBJECT', log::SQL);

將顯示所有訊息,除了除錯級別訊息,以及有關資料庫連線的訊息。

LOG_SUBJECT

將顯示所有有關 SQL 查詢的訊息。(由於 SQL 查詢本身被認為是除錯資訊,因此您需要此設定才能顯示它們。)

[編輯 | 編輯原始碼]

使用此設定,您可以控制要檢視哪些主題的訊息。有一個特殊主題用於顯示所有訊息:log::ALL|您還可以使用~() 符號和

此設定配置始終顯示的日誌級別,無論訊息位於哪個主題中。預設情況下,此設定設定為 log::FATAL,這意味著任何嚴重性為 FATAL 或更糟 的訊息都將顯示。由於 log::FATAL 是最糟糕的訊息型別,因此只會顯示 log::FATAL 訊息。如果您將其設定為 log::WARN,則任何嚴重性為 WARN 或更糟 的訊息都將顯示,因此將顯示任何 FATALERRORWARN 訊息。已新增一個特殊的嚴重性級別來抑制所有訊息:log::NONE

() 符號來組合多個主題。
define('LOG_SEVERITY', log::ERROR);
define('LOG_SUBJECT', log::LANG | log::IMG);

[編輯 | 編輯原始碼]

define('LOG_SEVERITY', log::NOTIFY);
define('LOG_SUBJECT', log::ALL | ~log::SQL);

將顯示所有指示錯誤或致命錯誤,以及有關 Zoph 翻譯或影像的訊息。

define('LOG_SEVERITY', log::DEBUG);
define('LOG_SUBJECT', log::ALL ~(log::REDIRECT | log::DB));

將顯示所有訊息,除了除錯級別訊息,除了有關 SQL 查詢的訊息。

將顯示所有訊息,除了有關重定向或資料庫連線的訊息。
華夏公益教科書