TP5自定义日志的文件名称

1:在D:\www\tp5\thinkphp\library\think\Log.php中添加下列代码。可在runtime文件夹下建立tlogs文件夹(可自定义)。
/**
 * [payLog 支付日志log]
 * @param  [type] $mark        [备注]
 * @param  [type] $log_content [内容]
 * @param  string $keyp        [名]
 * @return [type]              [description]
 */
public static function mylog($mark, $log_content, $keyp = "") {
    $max_size = 30000000;
    if ($keyp == "") {
        $log_filename = RUNTIME_PATH . '/log/' . date('Ym-d') . ".log";
    } else {
        $log_filename = RUNTIME_PATH . '/log/' . $keyp . ".log";
    }

    if (file_exists($log_filename) && (abs(filesize($log_filename)) > $max_size)) {
        rename($log_filename, dirname($log_filename) . DS . date('Ym-d-His') . $keyp . ".log");
    }

    $t = microtime(true);
    $micro = sprintf("%06d", ($t - floor($t)) * 1000000);
    $d = new \DateTime (date('Y-m-d H:i:s.' . $micro, $t));
    if(is_array($log_content)){
        $log_content = JSONReturn($log_content);
    }

    file_put_contents($log_filename, '   ' . $d->format('Y-m-d H:i:s u') . " key:" . $mark . "\r\n" . $log_content . "\r\n------------------------ --------------------------\r\n", FILE_APPEND);
}

2:再在common.php中添加
/**
 * 生成JSON数据返回值
 */
function JSONReturn($result)
{
    return json_encode($result,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
}

3:使用如下:use think\Log;
Log::mylog('标题:' , '内容' , 'test.log');

上面是一种方法:

下面是另外一种方法:

在commom.php中加入下面的代码

/**
		 * 写日志
		 * @param $data : 数据
		 * @param $fileName : 写入哪个日志
		 */
		function logs($data = null,$fileName = null){
			if(is_null($data) || is_null($fileName)){
				$out_arr['code'] = '400004';
				return $out_arr;
			}
			
			$path = RUNTIME_PATH . 'log/' . $fileName;
			
			if(!is_dir($path)){
				$mkdir_re = mkdir($path,0777,TRUE);
				if(!$mkdir_re){
					$this -> logs($data,$fileName);
				}
			}
			
			$filePath = $path . "/" . date("Y-m-d",time());
			
			$time = date("Y-m-d H:i:s",time());
			$re = file_put_contents($filePath, $time." ".var_export($data,TRUE)."\r\n\r\n" , FILE_APPEND);
			
			if(!$re){
				$this -> logs($data,$fileName);
			}else{
				$out_arr['code'] = '000000';
				return $out_arr;
			}
		}

在需要用到的地方调用就可以了

logs('2423','signTurn');

猜你喜欢

转载自blog.csdn.net/dabao87/article/details/81740256
今日推荐