php 加入日志功能,php怎么寫一個日志功能的函數

我們要寫一個寫日志的函數,首先需要了解需求,我們一般怎么用日志函數呢?例如,程序執行到某一步,我希望把這個變量(地址)$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);returntrue;

}

用法:

1.打印一般變量$a,

log('得到了$a的值:%s',$a );

2 . 打印一個數組$arr

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

可以對上面的函數進行改進下:

functionlog2($arg){$log=?vsprintf('%s',?print_r($arg,true));$log=date('[Y/m/d?H:i:s]')?.'—'.$log.?PHP_EOL;$path=?dirname(__FILE__)?.'/log.log'$fp=file_put_contents($path,$log,?FILE_APPEND);returntrue;?}$a=[1,23,45,45];?log2($a);

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/259483.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/259483.shtml
英文地址,請注明出處:http://en.pswp.cn/news/259483.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Ant簡單工程的構建

1.在Ant的官方網站http://ant.apache.org/bindownload.cgi下載Ant最新版本(我下載的是apache-ant-1.8.2-bin.zip),Ant無需安裝,直接解壓后設置環境變量即可。 2.測試Ant是否安裝成功,在控制臺運行ant命令,出…

MVC學習四

第七節 講述了增加model中類的屬性,由于數據庫中已存在表,表中沒有存在新加的列,所以可以刪除數據庫或者在數據庫中新增一列,另可以在controller中新增一個數據庫初始化的類,并在Global.asax添加初始化數據庫的代碼 …

mysqlpump 備份文件壓縮對比

mysqldump,使用single-transaction,通過管道使用gzip壓縮,20G單數據庫備份real8m15.291suser8m39.617ssys0m16.675s備份文件1.43Gmysqlpump,4線程,使用single-transaction,通過管道使用gzip壓縮&#xff0c…

如何讓Latex公式字體變小

轉載:http://blog.sina.com.cn/s/blog_5e16f1770100gdxh.html 第一種方法:用比較笨的方法,一個一個公式用 \begin{small} \begin{equation} \ldots \end{equation} \end{small} 第二種方法:定義新的變量環境 在開始 \newenvironme…

php 正則表達式驗證金額,php 正則表達式驗證數字

非負浮點數(正浮點數 0):^d(.d)?$正浮點數 ^(([0-9].[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9])|([0-9]*[1-9][0-9]*))$非正浮點數(負浮點數 0) ^((-d(.d)?)|(0(.0)?))$負浮點數 ^(-(([0-9].[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9])|([0-9]*[1-9]…

ASP.NET MVC:會導致鎖定的會話

背景 一直沒有意識到會話的訪問會導致會話鎖定,現在想想這樣設計是非常合理的,不過某些情況下這樣會導致同一個會話的并發訪問非常低(只能串行化),好在MS提供了機制讓我們控制這種鎖。 測試 A頁面:緩存寫入…

.NET重構(四):窗體繼承+模板方法,完美實現組合查詢

導讀:在機房重構中,有好些個查詢都是大同小異,最為顯著的就是組合查詢了。怎樣給自己省事兒,相同的東西能不能重復利用,就成了一個現實的問題。第一遍做機房的時候,使用的更多的是:復制粘貼。學…

github常見操作和常見錯誤!錯誤提示:fatal: remote origin already exists.

原文鏈接:http://blog.csdn.net/dengjianqiang2011/article/details/9260435 如果輸入$ git remote add origin gitgithub.com:djqiang(github帳號名)/gitdemo(項目名).git 提示出錯信息:fatal: remote or…

云計算的下半場

經常有人說互聯網上下半場的區別,大體上上半場燒錢,下半場分出勝負。自打美團王興拋出互聯網的下半場的說法,大家意識到這不僅僅是新美大的下半場,這更是整個互聯網行業的下半場。爆炸式的人口紅利帶來互聯網行業上半場的快速增長…

oracle中的l_satids,請問shared pool中的KQR L PO存放哪些數據

ROW CACHE 也叫做 dictionary cache ,緩存數據字典基表如 OBJ$、COL$、IND$、SEQ$的信息以便解析SQL和library cache object。包括 KQR S PO , KQR M PO,KQR L PO , 等KQR > ROW CACHEkqr.h 1323 KSDTRADV("ROW_CACHE&quo…

This task is currently locked by a running workflow and cannot be edited

轉自:http://geek.hubkey.com/2007/09/locked-workflow.html 轉自:http://blogs.code-counsel.net/Wouter/Lists/Posts/Post.aspx?Listc04a88a9%2Dd138%2D4ac3%2Da2bb%2Db95c9fdd114e&ID118 SPWorkflow.AlertTask()的時候出現“This task is curren…

ETL模型設計

傳統的關系數據庫一般采用二維數表的形式來表示數據,一個維是行,另一個維是列,行和列的交叉處就是數據元素。關系數據的基礎是關系數據庫模型,通過標準的SQL語言來加以實現。 數據倉庫是多維數據庫,它擴展了關系數據庫…

《劍指offer》-整數中1出現的次數

題目描述 求出1~13的整數中1出現的次數,并算出100~1300的整數中1出現的次數?為此他特別數了一下1~13中包含1的數字有1、10、11、12、13因此共出現6次,但是對于后面問題他就沒轍了。ACMer希望你們幫幫他,并把問題更加普遍化,可以很快的求出任意非負整數區間中1出現的…

This is Me!——回顧第一個項目的前前后后

今天終于把論文敲完了,一路走來,頗多感想。遂寫下以下諸多文字,以饗讀者。 在說這個項目之前,先簡單介紹一下我的經歷。我叫王財勇,家是山西的,2009年至2013年在新疆大學就讀數學專業,也許有人…

從零開始學JavaScript三(變量)

一、變量 ECMAscript變量是松散型變量,所謂松散型變量,就是變量名稱可以保存任何類型的數據,每個變量僅僅是一個用于保存值的占位符。 定義變量時要使用var操作符 如: var message; /*定義一個名為message的變量,該變量…

DES加密過程例解

DES加密算法是最被廣泛使用的對稱加密算法,通過示例來演示DES、TribleDES(3Key) DES-ECB: 按8字節為單位進行加密,不足8字節補0key: 1111111111111111indata: 2222222222222222 OutData: 950973182317F8…

linux在雙系統中消失了,雙系統重新安裝windows后,ubuntu選項消失

1、首先用LiveCD進入ubuntu2、打開終端,,輸入:fdisk -l 查看自己linux的分區情況,我的分了4個區,swap,boot,/,home,對應的分別是:/dev/sda9 swap…

Cydia源局域網化

2019獨角獸企業重金招聘Python工程師標準>>> 步驟 在網址根目錄創建文件夾cydia,把你的deb文件放到 cydia/debs/ 文件夾下。在終端cd進入cydia文件夾輸入命令:dpkg-scanpackages debs /dev/null > Packages輸入命令:tar zcvf P…

前綴++ 后綴++ 運算符重載

下面例子程序中 const Fraction operator (int) 中 int不過是個啞元(dummy),是永遠用不上的 它只是用來判斷++是prefix 還是 postfix 記住,如果有啞元,則是postfix,否則&#xff0c…

固定資產調整對資產折舊的影響

固定資產折舊計提方法 一、原值增加: 1、已攤銷資產: 攤銷調整時間設在當期:(1078135) 在進行原值增加后,攤銷日期不變時,折舊在當月體現。 每月新增月折舊調增金額*(1-殘值率)/(折舊年限*12-已提折舊月份的個數) 例&a…