问题描述
我对如何将日志正确保存在目录中有疑问。我的php代码:
public static function log(test $testination) {
echo($testination->getDetails()."\n");
$log_filename = shell_exec("cd; ~/log/");
$log_filename2 = "log";
if (!file_exists($log_filename2))
{
mkdir($log_filename,0777,true);
}
$log_file_data =$log_filename.'/logs_' . date('d-M-Y') . '.log';
file_put_contents($log_file_data,var_dump($testination) . "\n",FILE_APPEND);
}
在此代码中,我在与PHP文件相同的位置创建一个文件夹,然后在该文件夹不存在的情况下创建文件夹日志。
我想保存在开头(只是cd),然后创建日志文件夹(如果该文件夹不存在,请尝试此代码)
$log_filename = shell_exec("cd; ~/log/");
我收到警告/错误
PHP Warning: file_put_contents(/logs_18-Aug-2020.log): failed to open stream: Permission denied in /test/test/Helper.php on line 318
任何想法怎么做?请卡住。
任何帮助将不胜感激。
解决方法
这不是应该使用file_put_contents
的方式:它不知道有关更改目录的任何尝试,因为这不会影响PHP的执行。如果要获取当前PHP文件的目录,可以使用basename(__DIR__)
Additionall,cd; ~/log/
也无法在您的Shell中工作。