首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

ThinkPHP 調試模式與日誌記錄完整配置指南

     編輯:PHP 相關知識

ThinkPHP 內置強大的調試工具與靈活的日誌系統,合理配置能大幅提升開發效率與問題排查速度。本文匯總配置項含義、調試面板自定義、SQL 執行監控、運行性能統計及日誌級別控制等實戰技巧。

核心配置項(conf.php)

<?php
return array(
    // URL 模式
    'URL_MODEL' => 1,               // PATHINFO 模式
    'URL_PATHINFO_DEPR' => '-',     // 參數分隔符

    // 模板定界符(避免與前端框架衝突)
    'TMPL_L_DELIM' => '<!--{',
    'TMPL_R_DELIM' => '}-->',

    // ***** 調試模式 *****
    'APP_DEBUG' => true,            // 開啟調試:大小寫敏感、詳細錯誤頁、禁用字段緩存

    // 關閉調試但保留性能統計
    // 'APP_DEBUG' => false,
    // 'SHOW_RUN_TIME' => true,      // 頁面執行時間
    // 'SHOW_ADV_TIME' => true,      // 詳細運行時間
    // 'SHOW_DB_TIMES' => true,      // 數據庫查詢次數
    // 'SHOW_CACHE_TIMES' => true,   // 緩存操作次數
    // 'SHOW_USE_MEM' => true,       // 內存開銷

    // 自定義 Trace 頁面
    // 'TMPL_TRACE_FILE' => APP_PATH . '/Public/trace.php',

    // ***** 日誌配置 *****
    'LOG_RECORD' => true,           // 開啟日誌
    'LOG_RECORD_LEVEL' => array('EMERG', 'ALERT', 'CRIT', 'ERR'), // 記錄級別
);
?>

Action 中調試技巧

<?php
// 1. 獲取最後執行的 SQL
$User = new Model('User');
$User->find(1);
echo $User->getLastSql();  // 輸出完整 SQL 語句

// 2. 手寫日誌
Log::write('用戶登入', Log::INFO);           // 記錄信息
Log::record('慢查詢 SQL: ' . $sql, Log::WARN); // 記錄並輸出到日誌文件

// 3. 自定義日誌文件
// Log::write('message', $level, $type, 'custom.log');
?>

日誌級別常量

常量值適用場景
EMERG0系統不可用
ALERT1必須立即處理
CRIT2嚴重錯誤
ERR3運行時錯誤
WARN4警告信息
NOTICE5重要提示
INFO6一般信息
DEBUG7調試詳情

最佳實踐建議

  • 開發環境:APP_DEBUG = true,日誌記錄 DEBUG 級別
  • 測試環境:APP_DEBUG = false,開啟 SHOW_* 統計,日誌 WARN 以上
  • 生產環境:關閉調試,日誌 ERR 以上,配合日誌切割工具(logrotate)
  • 字段緩存:修改表結構後需手動清除 Runtime/Data/ 下緩存文件

善用調試面板與分級日誌,讓 Bug 無處遁形,性能瓶頸一目了然。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved