From b75e7155b8f8b521e0666fed6d8f2171959d1364 Mon Sep 17 00:00:00 2001 From: ciniao <4041990@qq.com> Date: Sun, 31 Dec 2023 16:24:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=94=99=E8=AF=AF=E6=8D=95?= =?UTF-8?q?=E8=8E=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gameLog.ts | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/src/gameLog.ts b/src/gameLog.ts index 65e62be..255e644 100644 --- a/src/gameLog.ts +++ b/src/gameLog.ts @@ -1,6 +1,15 @@ import { Db, MongoClient } from "mongodb"; let logDB:Db; +let errorLogDB:Db; + +/** + * 是否是G123的测试服 + */ +function isG123stg(){ + return G.config.mongodbUrl.indexOf('.stg.')!=-1; +} + async function connGameLogDB() { console.log('connect gamelog mongodb ......'); let logDBUrl:string; @@ -14,9 +23,39 @@ async function connGameLogDB() { maxIdleTimeMS: 5*60*1000 }); logDB = client.db(`gameLog${G.config.serverId}`); + errorLogDB = client.db(`nodeJsErrorLog`); + return logDB; } + +process.on('uncaughtException',function(err:Error){ + addErrorLog((err.stack).toString()); +}) + +process.on('unhandledRejection', function (err:Error, promise) { + addErrorLog((err.stack).toString()); +}) + +async function addErrorLog(errData:any){ + try{ + //g123测试版连接不上db,不抓取 + if(isG123stg())return; + let log = { + serverId : G.config.serverId, + pid : process.pid, + cTime : Math.floor(Date.now()/1000), + error: errData + } + if(!errorLogDB){ + await connGameLogDB(); + } + errorLogDB.collection('nodeJsErrorLog').insertOne(log); + }catch(e){ + console.error('addErrorLog',e); + } +} + /** * 增加游戏日志 * @param uid 玩家uid @@ -27,6 +66,9 @@ async function connGameLogDB() { export async function addGameLog(uid:string, type:string, req:any, data:any){ try{ + //g123测试版连接不上db,不抓取 + if(isG123stg())return; + if(!logDB){ await connGameLogDB(); } @@ -38,7 +80,6 @@ export async function addGameLog(uid:string, type:string, req:any, data:any){ } //事件时间 log['cTime'] = Math.floor(Date.now()/1000); - logDB.collection('gameLog').insertOne(log); }catch(e){ console.error('addGameLog',e);