feat: add logging module for backend + frontend error reporting

Backend:
- New Logger utility (app/utils/Logger.php) with category-based log files
  (connect/game/bet/error/frontend under runtime/log/)
- Log WebSocket connect/close events (WsConnect, WsClose)
- Log dealer auth success/failure (SpaceConnectService)
- Log all game events: startBet, endBet, changeBoot, opening for all 7 game types
- Log unhandled exceptions (ExceptionHandle)
- Separate SQL/error logs via apart_level, enable realtime_write for Swoole
- Add /log/report POST endpoint for frontend error ingestion

Frontend:
- New error-report.js with window.onerror + unhandledrejection auto-reporting
- Added to all 12 dealer HTML templates
- Bump VERSION_V to v10.1.0
This commit is contained in:
testadmin
2026-05-14 11:28:33 +08:00
parent 710bb45614
commit d77c6beac7
31 changed files with 168 additions and 7 deletions
+16
View File
@@ -15,3 +15,19 @@ Route::get('think', function () {
});
Route::get('hello/:name', 'index/hello');
Route::post('log/report', function () {
$data = request()->post();
\app\utils\Logger::error(\app\utils\Logger::CAT_FRONTEND, $data['message'] ?? 'unknown', [
'source' => $data['source'] ?? 'unknown',
'type' => $data['type'] ?? 'error',
'stack' => isset($data['stack']) ? substr($data['stack'], 0, 2000) : '',
'file' => $data['file'] ?? '',
'url' => $data['url'] ?? '',
'line' => $data['line'] ?? '',
'col' => $data['col'] ?? '',
'ua' => request()->header('user-agent', ''),
'ip' => request()->ip(),
]);
return json(['status' => 1]);
});