<?php
class JsonLog {
const LEVEL_ERROR = 1;//记录一个致命错误消息
const LEVEL_WARNING = 2;// 记录一个警告消息
const LEVEL_INFO = 3;//记录一些有用信息的消息
const LEVEL_TRACE = 4;//记录消息跟踪一段代码如何运行
public $filename = "log";//日志名
public $suffix = ".log";//文件后缀
public $prefix = 'log_';//前缀
public $category = "log/";//类别
/**
* @param $content
* @param $level string
*/
public function writeLog($content,$level) {
//创建日志文件
$log_file = $this->createLogFile();
//组合日志内容
$message = $this->contentFormat($content,$level);
//写入日志
file_put_contents ($log_file,$message."\r\n", FILE_APPEND );
}
/**
* 创建日志文件
*/
private function createLogFile(){
$path = __DIR__."/".$this->category.exec('whoami')."/";
$fileName = $this->prefix.$this->filename."_".date("Y-m-d").$this->suffix;
//创建日志目录
if(!file_exists($path)){
mkdir($path,0777,true);
}
//创建日志文件
if(!file_exists($path.$fileName)){
fopen($path.$fileName,'a');
}
return $path.$fileName;
}
/**
* 格式化日志内容
* @param $content
* @param $level
* @return string
*/
private function contentFormat($content,$level){
$message = array('time' => date("Y-m-d H:i:s"));
switch ($level){
case 1:
$message['level'] = "error";
break;
case 2:
$message['level'] = "warning";
break;
case 3:
$message['level'] = "info";
break;
case 4:
$message['level'] = "trace";
break;
}
$message['content'] = $content;
return json_encode($message,320);
}
public static function ERROR($content){
//创建日志文件
$log_file = self::createLogFile();
$message = self::contentFormat($content,1);
//写入日志
file_put_contents ($log_file,$message."\r\n", FILE_APPEND );
}
public static function WARNING($content){
//创建日志文件
$log_file = self::createLogFile();
$message = self::contentFormat($content,2);
//写入日志
file_put_contents ($log_file,$message."\r\n", FILE_APPEND );
}
public static function INFO($content){
//创建日志文件
$log_file = self::createLogFile();
$message = self::contentFormat($content,3);
//写入日志
file_put_contents ($log_file,$message."\r\n", FILE_APPEND );
}
public static function TRACE($content){
//创建日志文件
$log_file = self::createLogFile();
$message = self::contentFormat($content,4);
//写入日志
file_put_contents ($log_file,$message."\r\n", FILE_APPEND );
}
}
php 日志写入
最新推荐文章于 2025-03-06 09:24:15 发布
本文介绍了如何在PHP中有效地实现日志写入,包括错误日志、自定义事件日志的记录方法,以及如何配置日志文件路径和级别,确保在开发和生产环境中稳定可靠地收集应用程序的日志信息。

373

被折叠的 条评论
为什么被折叠?



