介绍
在应用开发中,我们需要收集运行过程中的一些信息,例如系统日志、用户操作日志、错误日志等。这些日志可帮助我们在应用发生错误时可快速定位问题,进行修复操作。在PHP应用中,生成日志可以使用原生方式进行。
生成日志方法
在PHP中,生成日志有两种方式,一种是使用系统API,如:error_log方法; 第二种是通过文件系统操作,如:使用打开文件、写入、关闭文件的方式。前面一种方法,我们在Yansongda项目中就有使用,后一种方法则称为原生方法。
原生生成日志流程
原生方法生成日志分为三个步骤,分别为创建文件、写入内容、关闭文件。
创建文件
创建文件需要使用fopen方法进行,该方法有两个参数,分别为文件路径和操作文件方式。在该方式中,我们选择的操作文件方式为追加方式("a")。
文件路径:一般来说,我们将日志文件放置在应用根目录下的log目录内,该目录放置应用的日志、缓存、上传等文件。
$file = '../log/error.log';
$handle = fopen($file, 'a');
写入内容
文件创建成功后,我们需要将日志内容写入文件内。该过程中需要使用到 fwrite 方法。fwrite 方法有两个参数,第一个参数为文件句柄,第二个参数为内容字符串。
$message = 'Error: ' . $e->getMessage() . ' Time: ' . date('Y-m-d H:i:s');
fwrite($handle, $message . PHP_EOL);
内容字符串:在写入内容字符串时,需要包含以下信息:
Error:
错误信息:
时间:
关闭文件
在文件写入完成后,我们需要释放文件资源,使用 fclose 方法进行。fclose 方法接受一个文件句柄参数。
fclose($handle);
完整代码
$file = '../log/error.log';
$handle = fopen($file, 'a');
$message = 'Error: ' . $e->getMessage() . ' Time: ' . date('Y-m-d H:i:s');
fwrite($handle, $message . PHP_EOL);
fclose($handle);