类/记录器.php/PHP 错误



CodeIgniter: 遇到 PHP 错误

严重性:警告

消息:fopen(扫描程序/日志/eventlogs_2018-05-06.txt):无法打开流:没有这样的文件或目录

文件名:类/记录器.php

记录器.php

<?php
class Logger{
private $logFile;
private $fp;
public function lfile($path) {
$this->logFile = $path;
}
public function lwrite($message){
if(!$this->fp) 
$this->lopen();
$scriptName = pathinfo($_SERVER['PHP_SELF'], PATHINFO_FILENAME);
$time = date('H:i:s:ms');
fwrite($this->fp, "$time ,$scriptName, $messagen");
}
private function lopen(){
$lfile = $this->logFile;
$today = date('Y-m-d');
$this->fp = fopen($lfile . '_' . $today . '.txt', 'a') or exit("Can't open $lfile!");
}
}
?>

请记住,我的目录不是/scanner/logs/eventlogs/而是它的/application/user/views/scanner/所以我不知道为什么记录器试图在那里打开......谁能帮忙?

我将其用作网络扫描的表单! 一个片段

$log = new Logger();
			$log->lfile('scanner/logs/eventlogs'); // THIS IS WHERE ERROR POPS UP
			$log->lwrite('Connecting to database');
			$connectionFlag = connectToDb($db);
			if(!$connectionFlag)
			{
				$log->lwrite('Error connecting to database');
				echo 'Error connecting to database';
				return;
			}

你应该改变这个函数(它似乎为其他函数设置了路径):

public function lfile($path) {
$this->logFile = $path;
}

像这样:

public function lfile($path) {
$this->logFile = FCPATH . $path;
}

这样,您的所有路径都将来自C:xampphtdocs(FCPATH 示例),而不依赖于您从中调用函数的当前工作目录。

使用__DIR__常量,该常量返回脚本的当前目录。

public function lfile($path) {
$this->logFile = __DIR__ . "/" . $path; // sprintf("%s/%s", __DIR__, $path);
}

了解更多: http://php.net/manual/en/language.constants.predefined.php

最新更新