Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在不支持日志的主机上记录错误?_Php_Logging - Fatal编程技术网

Php 如何在不支持日志的主机上记录错误?

Php 如何在不支持日志的主机上记录错误?,php,logging,Php,Logging,我想使用以下方法将错误记录到文件: $tpath = "/storage/my-errors.log"; error_log("You messed up!", 3, $tpath); 我已经设置了777路径的权限,它应该可以保存这个你弄糟的值!在文件里,但我搞不清楚 我自己也犯了一个错误,但它没有保存在日志文件中,只是发消息说你搞砸了 我还尝试: ini_set("log_errors", 1); ini_set("error_log", "mypath"); error_log( "Hel

我想使用以下方法将错误记录到文件:

$tpath = "/storage/my-errors.log";
error_log("You messed up!", 3, $tpath);
我已经设置了777路径的权限,它应该可以保存这个你弄糟的值!在文件里,但我搞不清楚

我自己也犯了一个错误,但它没有保存在日志文件中,只是发消息说你搞砸了

我还尝试:

ini_set("log_errors", 1);
ini_set("error_log", "mypath");
error_log( "Hello, errors!" );

您可以使用所需的方法登录到CSV

创建一个可重复使用的函数,该函数将控制所有日志记录:

function logger($log_name, $log_message){

  $todays_date = date('Y-m-d');

  // Open the file to write to it, file is created if it does not exist.
  $output = fopen($log_name."-".$todays_date.".csv", 'w');

  // Write line of log in CSV format to the log.
  fputcsv($output, array("[".$todays_date."] ",$log_message));

  // Close the file.
  fclose($output);
}
您可以将其与进程名称一起用作$log\u名称

范例

这将生成一个名为user_login-2017-02-13.csv的日志。如果文件不存在,将创建该文件,随后对该文件的写入将逐行追加


“日期”部分用于自动为每天创建一个新文件,因此您可以根据需要更改该文件。

是否要抛出错误?或者你到底在问什么?你看到的/storage路径很可能不仅仅是/storage,而是类似于/users/i/n/g/ingus/storage/或与你的用户名类似的路径。您可能可以通过转储$\u SERVER['DOCUMENT\u ROOT']变量来解决这个问题。很可能你不需要在你自己的个人目录上写任何东西,但是他们已经在上面chroot'ed或锁定了ftp,这样你就可以看到/作为你的根,而实际上它不是服务器的根。如果你只需要将普通的PHP错误指向你的特定日志,请检查以下内容:如何:ini_setlog_errors,1;ini_seterror_log,/path/to/file/errors.txt;如果您有权创建php.ini,某些主机确实允许或设置htaccess文件,您还可以从Don't Panic的注释中设置所有这些指令,这将允许您捕获致命错误和语法错误。这真是太酷了!谢谢但是我想删除php/mysql错误,因为我没有访问它们的权限
logger("user_login", "You messed up");