I want to create a logfile for my system to register/log every action they do inside the system. But I have no idea how to do it.
For example, I have this php code that does the login function.
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); } }
now I want to create a logfile entitled ‘the date today’, then when that functions is used for loging in, it will write that user has logged in, the same with other functions. But I only want a single file for every day.
Could anyone be kind enough to guide and teach me how I should do my codes?
Advertisement
Answer
To write to a log file and make a new one each day, you could use date("j.n.Y")
as part of the filename.
//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);
So you would place that within your hasAccess()
method.
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); } }