PHP日志记录教程:如何将操作事件以JSON格式保存到日志文件中
有时我们需要记录用户或后端操作事件的操作状态。我们可以使用诸如PHP之类的后端语言将操作结果记录到日志文件中,以促进测试和查找问题。特别是那些在后端运行但无法直接看到前端的运行结果的人,您可以使用日志文件记录它们。如果您经常处理某些接口开发,例如支撑件界面和微信卡优惠券接口,则记录至关重要。少得多。

我们谈论的是PHP日志记录的内容是将日志信息写入日志文件,这与内存日志不同。写入日志的过程是:打开日志文件(如果不存在,则创建),然后将日志内容附加到日志文件的背面,最后关闭日志文件。
在本文中,我们将日志内容保存在JSON格式中,如有必要,可方便直接阅读。
PHP日志文件
PHP需要操作,例如打开,写作和关闭文件。 PHP具有与Fopen(),FWRITE()和FCLOSE()相对应的三个函数,而另一个功能file_put_contents()也可以将字符串写入文件。实际上,此功能会以顺序实现fopen(),fwrite()和fclose()的调用。因此,我们非常简洁地使用file_put_contents()。值得注意的是,在将内容添加到文件时,您需要包括参数:file_append。
在实际操作中,我们可能会遇到日志文件太大的情况,因此我们设置了最大值。当日志文件大小超过此最大值时,请备份日志文件,然后再生一个新的日志文件以记录。新的日志内容。
在编写日志之前,我们将json格式化日志内容,因此我们需要将内容转换为JSON格式,然后将其写入文件。当然,您也可以使用JSON,也可以更改为可以通过其他工具(例如日志分析工具)读取的格式。简而言之,我们编写的内容很方便,可在必要时轻松阅读。
函数Writelog($ filename,$ msg){
$ res = array();
$ res ['msg'] = $ msg;
$ res ['logTime'] = date(“ ymd h:i:s”,time());
//如果日志文件超过指定的大小,请备份日志文件
if(file_exists($ fileName)&&(abs(abs(filesize($ filename)))> 1024000){
$ newfileName = dirname($ filename)。'/'。time().'-'。basename($ fileName);
重命名($ filename,$ newfileName);
//如果是新创建的日志文件,请在内容中删除第一个字符逗号
if(file_exists($ filename)&& abs(filesize($ fileName))> 0){
$ content =“,”。json_encode($ res);
}别的{
$ content = json_encode($ res);
//在过去的日志文件的内容之后添加日志内容
file_put_contents($ fileName,$ content,file_append);
php读取日志文件
必要时,我们将阅读日志内容以进行分析。同样,我们使用php的file_get_contents()函数直接读取内容并将其转换为JSON格式,以方便调用。
功能readlog($ filename){
if(file_exists($ filename)){
$ content = file_get_contents($ filename);
$ json = json_decode('['。$ content。']',true);
}别的{
$ json ='{“ msg”:“该文件不存在。”}';
返回$ json;
日志写作和阅读课
我们经常使用编写和阅读日志的功能,因此我组织了写作和阅读的功能,以便容易呼叫。
如何使用:
$filename = "logs/log_".date("Ymd",time()).".txt";
$msg = '写入了日志';
$Log = new Log(); //实例化
$Log->writeLog($filename,$msg); //写入日志
$loglist = $Log->readLog($filename); //读取日志