增加错误捕获

This commit is contained in:
ciniao 2023-12-31 16:24:07 +08:00
parent c2b1a6cb0b
commit b75e7155b8

View File

@ -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);