/**
* 根据时间获取目录名
* @return string
*/
public static function getDirNameForDate()
{
$diry = date("Y");
$dirm = date("md");
return $diry . DIRECTORY_SEPARATOR . $dirm . DIRECTORY_SEPARATOR;
}
/**
* 写测试日志
* @param $content
* @param string $fileName
* @return bool
*/
public static function myLog($content, $fileName = "")
{
$dirForDate = $getDirNameForDate=self::getDirNameForDate();
$dir=LOG_PATH.$dirForDate;
self::createFolders($dir,0755);
if (empty($fileName)) {
$url = $dir . DIRECTORY_SEPARATOR . 'testlog' . date('Ymd', time()) . ".log";
} else {
$url = $dir. DIRECTORY_SEPARATOR . $fileName;
}
// 获取当前时间的微秒数
$microtime = microtime(true); // 返回浮点数,包含秒和微秒
// 获取当前时间的毫秒值
$milliseconds = round(($microtime - floor($microtime)) * 1000);
$mi=str_pad($milliseconds, 3, '0', STR_PAD_LEFT);
$content = "执行时间:" . date('Y-m-d H:i:s', time()) .$mi.PHP_EOL. $content;
$myfile = fopen($url, "a+") or die("Unable to open file!");
fwrite($myfile, $content . "\r\n");
fclose($myfile);
return true;
}
/**
* 日志
* @param $data
* @param string $fileName
*/
public static function myLogSave($data,$fileName='defaultLog')
{
$content = '';
if (is_array($data)) {
$content = json_encode($data, JSON_UNESCAPED_UNICODE);
} else if (is_object($data)) {
$content = '对象:'.json_encode($data, JSON_UNESCAPED_UNICODE);
} else if (is_string($data)) {
$content = $data;
} else {
$content = json_encode($data, JSON_UNESCAPED_UNICODE);
}
Tool::myLog($content, $fileName . date('Ymd', time()) . ".log");
}
<?php
namespace app\tools;
use think\Request;
/**
* 自定义的异常处理
*/
class MyException extends \Exception
{
private $myCode = 0;
private $myMessage = "";
public function __construct($message)
{
parent::__construct($message);
}
public function toJson($code)
{
$obj = new ErrorCode();
if( is_numeric($code) )
{
$this->myCode = $code;
$this->myMessage = $obj->getMessage($code);
}else{
$this->myCode = ErrorCode::ERROR_SYSTEM;
$this->myMessage = $code;
}
if(isset( $_REQUEST['jsonpcallback'] )){
$jsoncallback = htmlspecialchars($_REQUEST['jsonpcallback']);
echo $jsoncallback . "(".json_encode(['rtnCode'=>$this->myCode, 'rtnMsg'=>$this->myMessage],JSON_UNESCAPED_UNICODE).")";
}else{
header('Content-type:application/json; charset=utf-8');
echo json_encode(['rtnCode'=>$this->myCode, 'rtnMsg'=>$this->myMessage],JSON_UNESCAPED_UNICODE);
}
$request = Request::instance();
$module = $request->module(); // 获取当前模块
$controller = $request->controller(); // 获取当前控制器
$action = $request->action(); // 获取当前方法
$content =
"\r\n执行".$module.DIRECTORY_SEPARATOR .$controller.DIRECTORY_SEPARATOR.$action.
"\r\nget参数是:".json_encode($_REQUEST).
"\r\n报错文件是:".$this->file.
"\r\n报错行数是:".$this->line.
"\r\n返回码是:".$this->myCode.
"\r\n返回信息是:".$this->myMessage."\r\n";
$tool = new Tool();
$tool->myLog($content, "requestErrorLog".date('Ymd', time()).".log");
exit;
}
}