本文目錄一覽:
php 有沒有類似 python 的 sentry 日誌收集系統
php 有沒有類似 python 的 sentry 日誌收集系統
phpserialize 可以作為單純的 Python 擴展件來使用,不過,通常還是經常應用在 Python 編程環境和 PHP 編程環境相互之間需要進行數據交換時。
phpserialize 安裝很簡單,在 下載後,解壓,然後 # python setup.py install 即可。
phpserialize 使用起來也很簡單。
先導入該庫: import phpserialize
利用 dumps 進行序列化(變量 – 格式化文本): phpserialize.dumps(vary)
使用 loads 進行反序列化(格式化文本 – 變量):phpserialize.loads(formated_string)
php日誌類??
首先,你得有一個“日誌類”,明顯PHP並沒有內置,所以你需要自己編寫這個類。
日誌模塊的大概設計思路如下:
1、你得有一個數據表,記錄所有的用戶行為。
2、你得寫一個“日誌類”,這個類至少有一個方法:向數據表寫入日誌信息
那日誌信息從哪裡來呢?
在你想記錄日誌的地方,調用日誌類的方法來觸發寫入動作。
比如(偽代碼):
if (用戶登錄成功){
$日誌類 = new 日誌類();
$日誌類-插入數據( “登錄日誌”, “登錄成功”, “username=a;password=b”, “IP” … )
}
如果你想做日誌的查詢功能,顯然你要給日誌類加更多方法..
怎樣用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);
return true;
}
用法:
1.打印一般變量$a,
log(‘得到了$a的值:%s’,$a );
2 . 打印一個數組$arr
log(‘%s’,print_r($arr,true));
可以對上面的函數進行改進下
function log2($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);
return true;
}
$a=[1,23,45,45];
log2($a);
如何開啟PHP日誌功能?
在php編程中,對於一些訪問沒有明顯錯誤提示的php頁面,可以通過error_log來做進一步的判定。
但出於種種原因,有些服務器並沒有開啟PHP的error_log功能。
測試或其它需要時,可以打開一下,方法如下。
編輯php.ini,將log_errors設置為on:
log_errors = On
然後,重啟apache即可。
如成功開啟,就可以跟蹤到對應的錯誤提示:
[Mon Sep 24 16:57:01 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line 2
[Mon Sep 24 16:57:02 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line 2
[Mon Sep 24 16:57:03 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line 2
[Mon Sep 24 16:57:04 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line
另外,注意在Windows環境下,除了將log_errors設置為on外,還需要定義error_log的路徑及文件名:
error_log = d:/temp/error.log
(此目錄需要授予php標識用戶的修改權限,否則日誌文件無法生成)
IIS沒有error_log的概念,所以需要另外定義。
PHP日誌系統怎麼做?
獲取日誌所在的表應該有一個類型為INT自動增長的ID值吧,然後在這個標題的超鏈接中這樣寫 href=”showpiaoti.php?id=?=$datarow[id]?”
然後在顯示內容的頁面showpiaoti.php中這樣寫
select * from 日誌表 where id=$_GET[id]
然後就ECHO 出datarow[“content”]就行了
大概就是這樣
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/235566.html