diff --git a/package.json b/package.json index 8865a0a..6100faf 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,8 @@ }, "dependencies": { "mysql2": "^3.9.1", - "sqlstring": "^2.3.3" + "sqlstring": "^2.3.3", + "onelogger": "^1.0.0" }, "devDependencies": { "@eggjs/tsconfig": "^1.3.2", diff --git a/src/client.ts b/src/client.ts index a663db6..3ab1b1a 100644 --- a/src/client.ts +++ b/src/client.ts @@ -3,6 +3,7 @@ import { promisify } from 'node:util'; import { setTimeout } from 'node:timers/promises'; import mysql, { Pool } from 'mysql2'; import type { PoolOptions } from 'mysql2'; +import { getLogger } from 'onelogger'; import type { PoolConnectionPromisify, RDSClientOptions, TransactionContext, TransactionScope } from './types'; import { Operator } from './operator'; import { RDSConnection } from './connection'; @@ -167,6 +168,10 @@ export class RDSClient extends Operator { if (typeof connOrTimeout === 'number') { connPromise.then(conn => { conn.release(); + }).catch(e => { + const logger = getLogger(); + e.message = 'get conn failed after timeout: ' + e.message; + logger.warn(e); }); throw new PoolWaitTimeoutError(`get connection timeout after ${connOrTimeout}ms`); }