怎麼用php寫一個日誌功能的函數

來源:互聯網
上載者:User
我們要寫一個寫日誌的函數,首先需要瞭解需求,我們一般怎麼用日誌函數呢?例如,程式執行到某一步,我希望把這個變數(地址)$user_address的值列印到日誌,我們希望日誌裡是這麼寫的:

`xx-xx-xx xx:xx $user_address : 上海市楊浦區xxxxx

然後每一條日誌都要換行,都有日期時間,

假設 函數名稱是log();

我們希望這麼調用他 log(‘useraddress:user_address);

那如果$user_address 是一個數組,我想把一個數組的全都都輸出到日誌中,該怎麼辦呢?

有一個函數是print_r($arg,true),第二個參數表示不直接輸出,而是輸出的結果作為傳回值.我們知道他的輸出結果為一段字串.

log函數可以這麼寫

log(){    $args = func_get_args();//獲得傳入的所有參數的數組$numargs = func_num_args(); //參數的個數if ($numargs == 0) {        $log = "";    } elseif ($numargs == 1) {        $log = $args[0];    } else {        $format = array_shift($args); //分割掉函數第一個元素,並且做傳回值返回,'$user_address:%s'$log = vsprintf($format, $args); //把參數代入$format中,    }    $log = date("[Y/m/d H:i:s] ") . $log . PHP_EOL;//加上時間$file = '/usr/share/nginx/html/log.log';    $fp = fopen($file, 'a');    fwrite($fp, $log);    fclose($fp);    return true;    } 

用法:
1.列印一般變數$a,
log('得到了$a的值:%s',$a );

2 . 列印一個數組$arr

log('%s',print_r($arr,true));

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $numbering.fadeIn(1700); }); });

    以上就介紹了怎麼用php寫一個日誌功能的函數,包括了方面的內容,希望對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.