如何记录不支持日志的托管错误?

时间:2017-02-13 20:22:22

标签: php logging

我想使用此方法将错误记录到文件中:

$tpath = "/storage/my-errors.log";
error_log("You messed up!", 3, $tpath);

我已在777的路径上设置权限,并且应将此值"You messed up!"保存到文件中,但我无法弄明白。

我自己犯了一个错误,但它没有保存在日志文件中,只是发送了消息"You messed up!"

我也尝试过:

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

1 个答案:

答案 0 :(得分:1)

您可以使用所需方法将其记录为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_name。

示例

logger("user_login", "You messed up");

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

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