如何用PHP创建日志文件用户?

时间:2017-06-28 03:03:15

标签: php mysql apache

我有一个带有PHP的网页,Apache,MySQL在Ubuntu上运行。我的网页有插入,更新,删除等功能。

现在我想监视用户对Web服务器的操作,例如在用户登录Web服务器时写入日志文件并执行某些操作:插入,更新或删除数据。

我该怎么做?

1 个答案:

答案 0 :(得分:-1)

如果PHP是apache2模块,Php会将错误日志存储在/ var / log / apache2中。共享主机通常将日志文件存储在根目录/日志子文件夹中。但是......如果你有权访问php.ini文件,你可以这样做:

error_log = /var/log/php-scripts.log

在Cpanel中:

/usr/local/apache/logs/error_log

如果所有其他方法都失败了,您可以使用

检查日志文件的位置
<?php phpinfo(); ?>

第二个选项:

要写入txt文件并每天创建一个新文件。使用日期(&#34; j.n.Y&#34;)作为日志文件名的一部分。

    //Something to write to txt log
$log  = "User: ".$_SERVER['REMOTE_ADDR'].' - '.date("F j, Y, g:i a").PHP_EOL.
        "Attempt: ".($result[0]['success']=='1'?'Success':'Failed').PHP_EOL.
        "User: ".$username.PHP_EOL.
        "Pass: ".$password.PHP_EOL.
        "-------------------------".PHP_EOL;
//Save string to log, use FILE_APPEND to append.
file_put_contents('./log_'.date("j.n.Y").'.txt', $log, FILE_APPEND);

因此,您可以将其放在hasAccess()方法中。

    public function hasAccess($username,$password){
    $form = array();
    $form['username'] = $username;
    $form['password'] = $password;

    $securityDAO = $this->getDAO('SecurityDAO');
    $result = $securityDAO->hasAccess($form);

    //Write action to txt log
    $log  = "User: ".$_SERVER['REMOTE_ADDR'].' - '.date("F j, Y, g:i a").PHP_EOL.
            "Attempt: ".($result[0]['success']=='1'?'Success':'Failed').PHP_EOL.
            "User: ".$username.PHP_EOL.
            "Pass: ".$password.PHP_EOL.
            "-------------------------".PHP_EOL;
    //-
    file_put_contents('./log_'.date("j.n.Y").'.txt', $log, FILE_APPEND);

    if($result[0]['success']=='1'){
        $this->Session->add('user_id', $result[0]['id']);
        //$this->Session->add('username', $result[0]['username']);
        //$this->Session->add('roleid', $result[0]['roleid']);
        return $this->status(0,true,'auth.success',$result);
    }else{
        return $this->status(0,false,'auth.failed',$result);
    }
}

你可以做的另一件事是:

ini_set("log_errors", 1);
ini_set("error_log", "/tmp/php-error.log");
error_log( "Hello, errors!" );

然后观看文件:

tail -f /tmp/php-error.log

或者更新php.ini,如2008年this blog entry中所述。

有关error_log的详细信息,您可以访问此link