php - 如何在php中创建日志文件

标签 php logfile

我想为我的系统创建一个日志文件来注册/记录他们在系统内执行的每个操作。但我不知道该怎么做。

例如,我有这个执行登录功能的 php 代码。

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


    $securityDAO = $this->getDAO('SecurityDAO');
    $result = $securityDAO->hasAccess($form);
    //var_dump($form);
    //var_dump($result);
    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);
    }
}

现在我想创建一个名为“今天的日期”的日志文件,然后当该功能用于登录时,它会写入该用户已登录,与其他功能相同。但我每天只想要一个文件。

谁能指导和教我如何编写代码?

最佳答案

要写入日志文件并每天创建一个新文件,您可以使用 date("j.n.Y") 作为文件名的一部分。

//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.
        "-------------------------".PHP_EOL;
//Save string to log, use FILE_APPEND to append.
file_put_contents('./log_'.date("j.n.Y").'.log', $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.
            "-------------------------".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);
    }
}

关于php - 如何在php中创建日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19898688/

相关文章:

java - 在 spring mvc 项目中的项目日志文件夹中找不到日志文件

c# - 使用 Log4Net 时未创建日志文件

php - 按下后退按钮时强制重新加载/刷新

php - 检查一个数组是否有一个或多个空值

php - 使用 Gmail 的 SMTP 服务器每天发送 1000 多封电子邮件

java - Eclipse Juno 无法工作/打开

php - PHP 并发

javascript - 分组交替行颜色与变化

logging - IntelliJ 读取远程服务器日志文件

visual-studio - Visual Studio "15"预览版卸载