php日誌函數,PHP錯誤日誌

本文目錄一覽:

php實現的debug log日誌操作類實例

本文實例講述了php實現的debug

log日誌操作類。分享給大家供大家參考,具體如下:

?php

class

Tool

{

public

static

function

log($info)

{

$time

=

date(‘m-d

H:i:s’);

$backtrace

=

debug_backtrace();

$backtrace_line

=

array_shift($backtrace);

//

哪一行調用的log方法

$backtrace_call

=

array_shift($backtrace);

//

誰調用的log方法

$file

=

substr($backtrace_line[‘file’],

strlen($_SERVER[‘DOCUMENT_ROOT’]));

$line

=

$backtrace_line[‘line’];

$class

=

isset($backtrace_call[‘class’])

?

$backtrace_call[‘class’]

:

”;

$type

=

isset($backtrace_call[‘type’])

?

$backtrace_call[‘type’]

:

”;

$func

=

$backtrace_call[‘function’];

file_put_contents($_SERVER[‘DOCUMENT_ROOT’].’/debug.log’,

“$time

$file:$line

$class$type$func:

$info\n”,

FILE_APPEND);

}

}

class

Action

{

public

function

a()

{

$this-b();

}

public

function

b()

{

$this-c();

}

public

function

c()

{

Tool::log(‘sdfsdf’);

}

}

$action

=

new

Action();

$action-a();

這裡再補充一個函數:

function

loginfo($format)

{

$args

=

func_get_args();

array_shift($args);

$d

=

debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT,

1)[0];

$info

=

vsprintf($format,

$args);

$data

=

sprintf(“%s

%s,%d:

%s\n”,

date(“Ymd

His”),

$d[“file”],

$d[“line”],

$info);

file_put_contents(__DIR__.”/log.txt”,

$data,

FILE_APPEND);

}

更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP錯誤與異常處理方法總結》、《php字符串(string)用法總結》、《PHP數組(Array)操作技巧大全》、《PHP運算與運算符用法總結》、《PHP網絡編程技巧總結》、《PHP基本語法入門教程》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

php 怎麼自動觸發自定義日誌

error_reporting(0);//關閉錯誤日誌輸入

/**定義日誌類型觸發函數***/

set_exception_handler(array(‘logClass’,”myErrorHandler”));  

set_error_handler(array(‘logClass’,”myErrorHandler”));  

register_shutdown_function(array(‘logClass’,”handleFatalError”));

php怎麼增加log日誌來

1、使用指定的文件記錄錯誤報告日誌

使 用指定的文件記錄錯誤報告日誌使用指定的文件記錄錯誤報告日誌使用指定的文件記錄錯誤報告日誌 如果使用自己指定的文件記錄錯誤日誌,一定要確保將這個文 件存放在文檔根目錄之外,以減少遭到攻擊的可能。並且該文件一定要讓PHP腳本的執行用戶(Web服務器進程所有者)具有寫權限。假設在Linux操作系 統中,將/usr/local/目錄下的error.log文件作為錯誤日誌文件,並設置Web服務器進程用戶具有寫的權限。然後在PHP的配置文件中, 將error_log指令的值設置為這個錯誤日誌文件的絕對路徑。

需要將php.ini中的配置指令做如下修改:

1. error_reporting = E_ALL ;將會向PHP報告發生的每個錯誤

2. display_errors = Off ;不顯示滿足上條 指令所定義規則的所有錯誤報告

3. log_errors = On ;決定日誌語句記錄的位置

4. log_errors_max_len = 1024 ;設置每個日誌項的最大長度

5. error_log = E:/php_log/php_error.log ;指定產生的 錯誤報告寫入的日誌文件位置

PHP 的配置文件按上面的方式設置完成以後,並重新啟動Web服務器。這樣,在執行PHP的任何腳本文件時,所產生的所有錯誤報告都不會在瀏覽器中顯示,而會記 錄在自己指定的錯誤日誌/usr/local/error.log中。此外,不僅可以記錄滿足error_reporting所定義規則的所有錯誤,而且 還可以使用PHP中的error_log()函數,送出一個用戶自定義的錯誤信息。

php該在哪裡寫日誌?怎麼寫日誌?日誌是做什麼用的?

所謂的日誌就是記錄系統運行狀態的數據。

一般是將信息記錄到文本文件或數據庫中。

比如:

?php

function writeLog($msg){

$logFile = date(‘Y-m-d’).’.txt’;

$msg = date(‘Y-m-d H:i:s’).’ ‘.$msg.”\r\n”;

file_put_contents($logFile,$msg,FILE_APPEND );

}

//調用上面的函數,寫一條信息進日誌文件

writeLog(‘這是測試日誌信息’);

?

PHP自帶的日誌是怎麼寫入和查看的呢

查看PHP錯誤日誌

可以在命令行裡面輸入: find . -name error.log

tailf -f error.log

寫入日誌,有固定的函數error_log($str, 3, filename)

php實現日誌管理(記錄用戶操作)原理

把日誌需要保留的數據用json串或xml等數據結構的方式存儲起來,調用的時候直接解析這些數據結構即可。

按簡單的理解,給各模塊的關鍵步驟起個操作名字,記錄一下該操作名,時間,用戶,IP等就完了。

單入口模式,這樣只需要往index.php加入write_log功能就好了。

至於哪個字段,原值,新值,這個沒什麼好方法啊,可以引入插件機制,

開個類存儲插件方法,命名以module_task為準,比如以上的url就是article_update

那麼這個插件類就是

class plugin

{

public $extraLog;

function article_update($field,$old,$new)

{

self::$extraLog = array(‘字段’=$field,’原值’=$old,’新值’=$new);

}

}

這個方法在流程頁面進行數據庫操作的地方調用,index.php的write_log流程只讀plubin::$extraLog,循環然後和其它信息一起入庫或文件。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/151769.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-11 13:44
下一篇 2024-11-11 13:44

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字符串操作中,capitalize函數常常被用到,這個函數可以使字符串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • 單片機打印函數

    單片機打印是指通過串口或並口將一些數據打印到終端設備上。在單片機應用中,打印非常重要。正確的打印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的打印數據可以幫助我們快速…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python定義函數判斷奇偶數

    本文將從多個方面詳細闡述Python定義函數判斷奇偶數的方法,並提供完整的代碼示例。 一、初步了解Python函數 在介紹Python如何定義函數判斷奇偶數之前,我們先來了解一下P…

    編程 2025-04-29
  • Python實現計算階乘的函數

    本文將介紹如何使用Python定義函數fact(n),計算n的階乘。 一、什麼是階乘 階乘指從1乘到指定數之間所有整數的乘積。如:5! = 5 * 4 * 3 * 2 * 1 = …

    編程 2025-04-29
  • Cron執行日誌用法介紹

    本文將從多個方面對cron執行日誌進行詳細闡述,包括cron執行日誌的定義、cron執行日誌的產生原因、cron執行日誌的格式以及如何解讀cron執行日誌。 一、定義 Cron是一…

    編程 2025-04-29

發表回復

登錄後才能評論