亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

ThinkPHP教程_PHP框架之ThinkPHP(四)調試模式與日志記

2020-03-24 18:55:55
字體:
來源:轉載
供稿:網友
  • 一、調試模式

      開啟調試模式后,可以看到更加詳細的錯誤信息,調試模式的作用的在于顯示或者記錄更多的日志信息,以便在開發過程中快速定位和解決問題

      只需要在項目配置文件中添加一個'APP_DEBUG'=>true,即可開啟

      1、開啟調試模式后,系統在運行時會首先檢查是否定義了項目調試配置文件,如果沒有定義則使用系統調試配置文件(這是ThinkPHP為我們定義好的),系統調試配置文件為系統目錄->Common->debug.php文件

      

      2、在系統調試配置文件中,'DB_FIELDS_CACHE'=>false 即關閉數據表字段緩存,因為在調試模式下考慮到數據表結構會經常變動,所以默認只要開啟調試模式就關閉數據表字段緩存

      所謂數據表字段緩存,就是ThinkPHP會將整個應用所涉及的表的結構都緩存到應用目錄->Runtime->Data->_files目錄中,每張表對應一個php文件,文件名就是表名,文件內容是一個記錄該表字段信息的數組!也就是說如果開啟了該緩存,那么在直接對數據庫中的表結構進行的修改是不會反映到表結構緩存文件的,而在用Model對表進行操作的時時是根據表結構緩存文件中的結構信息來的,所以會導致比如新加的一個字段插入不進去數據的問題

      關于數據表結構緩存,這里有一個鏈接

      3、項目調試配置文件

      在應用目錄->Config目錄下新建一個debug.php文件,內容格式按照系統調試配置文件,最好是將系統調試配置文件的內容copy過來,然后再對其進行刪除、增加或修改

      不管是否開啟調試模式,都會加載項目配置文件(顯然是的,不先加載項目配置文件,怎么知道是否開啟了調試模式呢?對吧),如果沒有開啟調試模式則不會加載調試配置文件(系統/項目調試配置文件)的,而且調試配置文件(系統/項目)會覆蓋項目配置文件中的相同項!

      文件加載順序(很重要)如下

      系統配置文件---》項目配置文件---》系統調試配置文件 PS,注意,要么是加載系統調試配置文件,要么加載項目調試配置文件,并不會像配置文件

                     ---》項目調試配置文件       那樣,首先加載系統配置文件再加載項目配置文件

      4、運行狀態

      開啟調試模式后,默認會顯示頁面的運行狀態信息,包括運行時間、數據庫讀寫次數、緩存讀寫次數、內存開銷,例如

      

      而運行狀態信息并非必須得在調試模式下才能顯示,也是可以直接在項目配置文件中進行單獨配置的,可以配置一項或多項

      

      注意,這些信息默認是在模板的最后顯示的,但是如果你希望在模板其它地方顯示,那么可以通過將{__RUNTIME__}等等模板系統變量放到指定的位置顯示

      5、頁面Trace

      頁面Trace是ThinkPHP用于開發調試的輔助手段,在系統調試配置文件中是默認開啟的

      

        ·默認的Trace信息包括如下項

        

        ·還可以自定義Trace信息

        方式一:在應用目錄->Config目錄下新建一個trace.php文件,內容格式與項目配置文件一樣(返回一個Aarry),比如

        

        

        方式二:在動作內通過trace()方法來增加trace信息

        

        

      Trace模板也是可以自定義的,上面所說的是自定義Trace信息,在自定義的Trace模板中的關鍵性代碼如下

      

      默認的Trace模板是系統目錄->Tpl目錄->PageTrace.tpl.php文件,通過在項目配置文件中的'TMPL_TRACE_FILE'配置項進行配置,比如說'TMPL_TRACE_FILE'=>APP_PATH.'/Public/trace.php',那么項目目錄->Public目錄->trace.php文件就是自定義的Trace模板

      6、手動輸出調試信息(Action調試)

      有時候調試模式并不能完全滿足我們的需求,而需要手動輸出一些調試信息

        ·手動輸出變量信息

        除了使用PHP內置的var_dump()函數和print_r()函數之外,還可以使用ThinkPHP提供的對瀏覽器更加友好的dump()函數

        ·獲取某代碼段的運行狀態

        debug_start($label='')和debug_end($label='')函數,比如說

        

        

        ·中斷程序執行并輸出相關信息

        halt($mes);輸出錯誤信息并終止程序執行

      7、模型調試(Model調試)

      在模型中,為了更好的查明錯誤,經常需要查看下最近使用的sql語句,那么ThinkPHP就提供了getLastsql()方法來輸出上次執行的sql語句

      

      輸出結果為SELECT * FROM think_user WHERE id = 1

      8、調試類

      更加高級的調試方式是使用調試類Debug,分別有三個靜態方法mark()、useTime()、useMemory(),作用分別為標記一個調試位置、返回區間所用時間、返回區間所用內存,測試如下

      

      

      實際上,細心的同學可能發現用debug_start()和debug_end()所測試的相同代碼,在執行時間和使用內存上更小

      注意一下,通過Debug類的源碼可知,useTime()實際上還有第三個參數

      

    二、日志記錄

      日志的處理工作是由系統自動完成的,在開啟日志記錄的情況下,會記錄允許的日志級別的所有日志信息。其中SQL級別日志只有在調試模式開啟時才有效!

      系統的日志記錄由核心的Log類完成,提供了多種方式記錄下不同的級別的日志信息

      1、開啟日志記錄

      在項目配置文件中,添加'LOG_RECORD'=>true即可開啟日志記錄。一般在開啟日志記錄之后,緊接著要指定運行記錄的日志級別,通過'LOG_RECORD_LEVEL'=>array('日志級別',...)

      2、日志級別

      

      ps,在項目配置文件中指定日志級別的時候,填的是字串而不是常量名

      3、日志記錄方式(自動記錄)

        SYSTEM  通過發送到PHP的系統日志目錄    Log類中對應的常量名值是0

        MAIL    通過郵件方式發送                      1

        TCP    通過TCP方式發送 2

        FILE    通過文件方式記錄(默認方式) 3

      FILE方式的html' target='_blank'>文件格式

      年(簡寫)_月_日.log比如16_08_23.log表示2016年8月23日的日志文件

      這里所說的都是自動記錄日志,自動記錄的日志會保存到應用目錄->Runtime目錄->Logs目錄->年(簡寫)_月_日.log文件中

        ·可以通過LOG_FILE_SIZE來限制日志文件的大小,超過大小的日志文件就會形成備份文件,備份文件的格式是在當前文件名的前面加上備份的時間戳,例如1189571417-07_09_12.log

        ·日志文件的內容格式是[時間]日志級別:日志信息

        ·時間顯示格式可動態配置,默認采用的[c],可以改成例如Log::format='[Y-m-d H:i:s]',ps,格式與date()函數的用法一致

      4、手動記錄

      通常日志文件的寫入都是自動完成的,如果需要在開發的過程中手動記錄日志信息,可以通過Log類來實現

      有兩種方式

      方式一:直接使用Log::write()方法一步到位

      

      方式二:先使用Log::record()方法將日志寫入到內存中,然后再用Log::save()方法將內存中的日志寫到磁盤中

    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    日韩精品在线免费观看视频| 亚洲一区中文字幕| 日韩在线观看视频免费| 亚洲色图35p| 色综合久久天天综线观看| 91久久国产综合久久91精品网站| 国产精品视频一区国模私拍| 欧美日本啪啪无遮挡网站| 色悠悠久久久久| 欧美性xxxx极品hd满灌| 国产精品xxxxx| 日本欧美国产在线| 日本亚洲欧美三级| 国产精品wwwwww| 国产乱肥老妇国产一区二| 精品免费在线视频| 欧美日韩国产一中文字不卡| 精品亚洲一区二区三区在线播放| 亚洲www视频| 国产热re99久久6国产精品| 日本三级久久久| 国内精品免费午夜毛片| 国产精品com| www.亚洲人.com| 色妞欧美日韩在线| 日韩免费av一区二区| 色综合久久88色综合天天看泰| 91亚洲一区精品| 日韩中文在线视频| 国产精品91久久久| 亚洲人成在线观看网站高清| 成人av在线网址| 日韩大陆欧美高清视频区| 久久久久久久久久久国产| 日韩亚洲精品视频| 亚洲成人黄色在线观看| 日本一区二区不卡| 亚洲免费影视第一页| 国产婷婷成人久久av免费高清| 97在线看福利| 国产精品久久综合av爱欲tv| 日韩精品视频免费| 美女扒开尿口让男人操亚洲视频网站| 日韩人体视频一二区| 国产视频综合在线| 亚洲欧美自拍一区| 亚洲欧美中文日韩在线v日本| 97在线视频免费观看| 国产精品专区h在线观看| 少妇精69xxtheporn| 欧美日韩国产123| 欧美激情第1页| 欧美性猛交99久久久久99按摩| 亚洲欧美国产日韩天堂区| 亚洲日韩第一页| 黑人巨大精品欧美一区二区三区| 另类视频在线观看| 欧美自拍大量在线观看| 国产精品草莓在线免费观看| 国产91在线播放| 国产精品丝袜高跟| 欧美夫妻性生活视频| 久久久av亚洲男天堂| 在线免费看av不卡| 久久av.com| 欧美激情精品久久久久久黑人| 久久精品国产一区| 日韩免费av片在线观看| 国产欧美日韩视频| 国产久一一精品| 亚洲人成啪啪网站| 久久久久久97| 狠狠色狠色综合曰曰| 欧美极品欧美精品欧美视频| 91精品国产高清久久久久久91| 深夜精品寂寞黄网站在线观看| 亚洲福利视频在线| 国产精品劲爆视频| 国产日韩欧美夫妻视频在线观看| 欧美最猛性xxxxx亚洲精品| 91久久久久久久| 欧美成人午夜视频| 国产午夜精品免费一区二区三区| 北条麻妃一区二区三区中文字幕| 久久全国免费视频| 久久久久久亚洲精品不卡| 亚洲激情视频在线观看| 亚洲视屏在线播放| 91免费高清视频| 国产精品草莓在线免费观看| 国产精品久久久久久久久久三级| 国产999精品久久久| 日韩中文字幕在线视频播放| 色偷偷偷综合中文字幕;dd| 色综合91久久精品中文字幕| 亚洲尤物视频网| 欧美福利在线观看| 深夜成人在线观看| 亚洲欧洲高清在线| 亚洲成人激情视频| 韩国一区二区电影| 日韩av在线导航| 伊人久久久久久久久久久| 亚洲成人1234| 亚洲日本成人女熟在线观看| 伊人久久大香线蕉av一区二区| 欧美成人免费va影院高清| 亚洲欧美在线x视频| 国产这里只有精品| 国产精品视频区1| 色综久久综合桃花网| 亚洲自拍小视频免费观看| 亚洲一区二区三区毛片| 揄拍成人国产精品视频| 亚洲人成在线电影| 精品久久久久久久久久久久久| 精品久久久中文| 国产亚洲精品美女久久久久| 色婷婷久久一区二区| 久久久久久久电影一区| 精品伊人久久97| 久久在线视频在线| 日韩在线视频国产| 久久精品国产一区二区三区| 成人看片人aa| 中文字幕一精品亚洲无线一区| 欧美丰满少妇xxxxx做受| 日本韩国欧美精品大片卡二| …久久精品99久久香蕉国产| 红桃视频成人在线观看| 97成人在线视频| 亚洲黄色有码视频| 国产视频在线一区二区| 欧美激情免费观看| 日韩一区二区福利| 亚洲欧美日韩视频一区| 欧美一级淫片aaaaaaa视频| 成人黄色在线观看| 精品欧美激情精品一区| 亚洲精品久久久久中文字幕二区| 91av视频在线免费观看| 亚洲第一色中文字幕| 亚洲欧美精品一区二区| 成人中文字幕+乱码+中文字幕| 成人午夜在线影院| 国产一区深夜福利| 国产69精品久久久久99| www国产精品com| 亚洲性视频网站| 亚洲欧美精品一区二区| 欧美孕妇性xx| 国产精品一区二区在线| 亚洲最大成人在线| 国模吧一区二区| 亚洲日韩欧美视频| 夜夜嗨av一区二区三区四区| 日本精品久久久久久久| 日韩午夜在线视频| 日韩视频在线一区| 日韩精品视频三区| 欧美午夜宅男影院在线观看| 欧美激情网站在线观看| 亚洲黄色有码视频| 一区二区三区天堂av|