log4php的配置--PHP類初識,通用資料庫操作類代碼問題

來源:互聯網
上載者:User

標籤:

涉及的代碼網址:http://www.cnblogs.com/leetao94/p/4690732.html

代碼的點評

優點:代碼通用性很好,能夠根據傳入的欄位,自動拼接SQL語句
缺點:不支援參數綁定,程式魯棒性差
          類變數使用不當,不應使用公用變數。建構函式傳入參數過多,容易造成多點故障
         代碼格式縮排採用雙tab製表位
         程式未使用logger記錄常見故障資訊    
         資料庫連接多次建立,未重用串連。getcolumn代碼中採用寫入程式碼訪問資料庫
         使用select *  訪問資料庫
         程式未考慮多列主鍵的情境
         刪除操作屬於學院派作風
         php中對返回結果使用json_encode方法不當json_encode("true"); json_encode("{\"retcode\":true}")
         php中寫入程式碼現象仍然存在         後端取介面參數未作存在性校正
         前端編輯中缺少放棄功能,且點擊資料列表會丟失使用者當前工作,修改時編碼可修改,且幾個按鈕狀況不正確
         前端輸入介面不友好,包含檔案未作絕對路徑引用        未使用日誌
 問題太多,逐步解決,先解決日誌問題,為之後調試背景程式,帶來便利網上關於log4php配置的文章很多,下面是我的配置,跟網上部分略有不同(1)添加日誌    1.下載log4php,到官網就可以下載到,下載後解壓    我的版本是log4php_2.3.0
    官網地址:http://logging.apache.org/log4php/changelog.html    2.在項目中使用log4php
            工程的目錄結構如下:

            (1)include檔案夾:包含第三方庫的引用

            (2)images檔案夾:包含網站的圖片

            (3)js檔案夾:包含網站的指令檔

            (4)css檔案夾:包含網站的樣式表

      在include檔案下,建立log4php目錄,然後將剛才解壓的log4php目錄下的src檔案夾下的log4php檔案夾拷貝到該目錄下,如所示:

 

 

 

其中多出來的log目錄是之後的記錄檔存放的位置

(3).

    建立log4php.properties的設定檔

 

log4php.rootLogger=DEBUG, A1log4php.appender.A1=LoggerAppenderRollingFilelog4php.appender.A1.file=webdisk.loglog4php.appender.A1.layout=LoggerLayoutTTCClog4php.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd   HH:mm:ss}   [%t]   %C{1}:%M   %p   %m%nlog4php.appender.A1.MaxFileSize=1024log4php.appender.A1.MaxBackupIndex=3

 

 網上大多數這個時候配置就結束了,然而配置並沒有結束
    還有一個設定檔log_conf.xml
<?xml version="1.0" encoding="UTF-8"?><log4php:configuration xmlns:log4php="http://logging.apache.org/log4php/" threshold="all">    <appender name="default" class="LoggerAppenderDailyFile">        <layout class="LoggerLayoutPattern" >            <param name="conversionPattern" value="%date{Y-m-d H:i:s} %logger %msg%n" />        </layout>        <param name="file" value="D:/servers/phpweb/edu_system/log/data.%s.txt" />    </appender>    <appender name="dblog" class="LoggerAppenderDailyFile">        <layout class="LoggerLayoutPattern">            <param name="conversionPattern" value="%date{Y-m-d H:i:s} %logger %msg%n" />        </layout>        <param name="file" value="D:/servers/phpweb/edu_system/tpssdb.%s.txt" />            </appender>        <logger name="db\PdoDB">        <level value="DEBUG" />        <appender_ref ref="dblog" />    </logger>    <root>        <level value="DEBUG" />        <appender_ref ref="default" />    </root></log4php:configuration>
開啟apache伺服器,訪問test_log.php瀏覽器結果:   發現多了個檔案夾log,log下多了個檔案(5)將之前的actSQL.class.php類加入logger 代碼部分如下:
function insertData($objstr,$tablename)        {                $dbc=$this->conData();                if($dbc)                {                        $columnname=array();                    $columnname=$this->getColumns($tablename);                    //echo $columnname[0];                        $clos=implode(‘,‘,$columnname); //將列名數群組轉換為字串                    $this->logger->debug(__LINE__ .‘ ‘.‘列名字串:‘.$cols);                    //echo $clos;                    $this->logger->debug(__LINE__ .‘ ‘.‘列名數組字串:‘.$clos);                    $data=json_decode($objstr,true); //將json格式的字串轉換為關聯陣列                    //echo $value[‘keychartname‘];                    $values=array();                    foreach($columnname as $value)                    {                            //安裝查詢到的列名查詢資料,資料為空白的,賦值為NULL,防止資料庫插入數值錯位                            //echo $data[$value]."<br>";                            if(isset($data[$value]))                            {                                    array_push($values,$data[$value]);                            }else{                                $data[$value]=NULL;                                array_push($value,$data[$value]);                            }                    }                    $strvalue=implode(‘,‘,$values);                    //echo $strvalue;                                       /*                    * SQL: insert into $tablename($clos) values(...)                    */                    $sql=<<<SQL                    insert into $tablename($clos) values($strvalue);SQL;                    //echo $sql;                    $this->logger->debug(__LINE__ .‘ ‘.‘insert語句:‘.$sql);                    $res=mysqli_query($dbc,$sql);                    if($res)                    {                        $this->logger->debug(__LINE__ .‘ ‘.‘插入成功!‘);                            return true;                                           }else{                            $this->logger->debug(__LINE__ .‘ ‘.‘插入失敗!‘);                                return false;                    }                }else{                         $this->logger->debug(__LINE__ .‘ ‘.‘串連資料庫失敗,錯誤資訊:‘.mysqli_connect_error($dbc));                }                }

後台調試簡單了許多,下面是日誌部分

大功告成!

  

 

log4php的配置--PHP類初識,通用資料庫操作類代碼問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.