×

php处理日志

php处理日志(php日志文件)

admin admin 发表于2023-03-13 09:47:07 浏览51 评论0

抢沙发发表评论

本文目录一览:

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程序设计有所帮助。

php日志类??

首先,你得有一个“日志类”,明显PHP并没有内置,所以你需要自己编写这个类。

日志模块的大概设计思路如下:

1、你得有一个数据表,记录所有的用户行为。

2、你得写一个“日志类”,这个类至少有一个方法:向数据表写入日志信息

那日志信息从哪里来呢?

在你想记录日志的地方,调用日志类的方法来触发写入动作。

比如(伪代码):

if (用户登录成功){

 $日志类 = new 日志类();

 $日志类-插入数据( "登录日志", "登录成功", "username=a;password=b", "IP" ... )

}

如果你想做日志的查询功能,显然你要给日志类加更多方法..

如何开启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-php处理日志

[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-php处理日志

[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-php处理日志

[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-php处理日志

另外,注意在Windows环境下,除了将log_errors设置为on外,还需要定义error_log的路径及文件名:

error_log = d:/temp/error.log

(此目录需要授予php标识用户的修改权限,否则日志文件无法生成)

IIS没有error_log的概念,所以需要另外定义。