koatty_logger
Version:
Logger for koatty.
617 lines (535 loc) • 45.5 kB
Plain Text
> koatty_logger@2.3.1 test /Users/richen/Workspace/nodejs/koatty-monorepo/packages/koatty-logger
> npm run eslint && jest --passWithNoTests
> koatty_logger@2.3.1 eslint
> eslint --ext .ts,.js ./
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["ERROR","test error"],"level":"error"}
578 | setImmediate(() => {
579 | try {
> 580 | this.logger[level](sanitizedArgs);
| ^
581 | resolve();
582 | } catch (error) {
583 | reject(error);
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as error] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Immediate._onImmediate (src/logger.ts:580:33)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO","string"],"level":"info"}
578 | setImmediate(() => {
579 | try {
> 580 | this.logger[level](sanitizedArgs);
| ^
581 | resolve();
582 | } catch (error) {
583 | reject(error);
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Immediate._onImmediate (src/logger.ts:580:33)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO",123],"level":"info"}
578 | setImmediate(() => {
579 | try {
> 580 | this.logger[level](sanitizedArgs);
| ^
581 | resolve();
582 | } catch (error) {
583 | reject(error);
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Immediate._onImmediate (src/logger.ts:580:33)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO",true],"level":"info"}
578 | setImmediate(() => {
579 | try {
> 580 | this.logger[level](sanitizedArgs);
| ^
581 | resolve();
582 | } catch (error) {
583 | reject(error);
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Immediate._onImmediate (src/logger.ts:580:33)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO",null],"level":"info"}
578 | setImmediate(() => {
579 | try {
> 580 | this.logger[level](sanitizedArgs);
| ^
581 | resolve();
582 | } catch (error) {
583 | reject(error);
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Immediate._onImmediate (src/logger.ts:580:33)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO",null],"level":"info"}
578 | setImmediate(() => {
579 | try {
> 580 | this.logger[level](sanitizedArgs);
| ^
581 | resolve();
582 | } catch (error) {
583 | reject(error);
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Immediate._onImmediate (src/logger.ts:580:33)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO",{"object":"value"}],"level":"info"}
578 | setImmediate(() => {
579 | try {
> 580 | this.logger[level](sanitizedArgs);
| ^
581 | resolve();
582 | } catch (error) {
583 | reject(error);
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Immediate._onImmediate (src/logger.ts:580:33)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO",["array","items"]],"level":"info"}
578 | setImmediate(() => {
579 | try {
> 580 | this.logger[level](sanitizedArgs);
| ^
581 | resolve();
582 | } catch (error) {
583 | reject(error);
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Immediate._onImmediate (src/logger.ts:580:33)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO",{}],"level":"info"}
578 | setImmediate(() => {
579 | try {
> 580 | this.logger[level](sanitizedArgs);
| ^
581 | resolve();
582 | } catch (error) {
583 | reject(error);
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Immediate._onImmediate (src/logger.ts:580:33)
[2026-01-28 11:45:06.232 +08:00] INFO buffered log 1
[2026-01-28 11:45:06.232 +08:00] INFO buffered log 2
[2026-01-28 11:45:06.246 +08:00] INFO log1
[2026-01-28 11:45:06.246 +08:00] INFO log2
[2026-01-28 11:45:06.246 +08:00] INFO log3
[2026-01-28 11:45:06.464 +08:00] INFO timer test 1
[2026-01-28 11:45:06.465 +08:00] INFO timer test 2
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO","High frequency log 0",{"index":0,"data":"data0"}],"level":"info"}
384 |
385 | // 批量写入时直接调用winston(在批量刷新时已经是异步的)
> 386 | this.logger[level](sanitizedArgs);
| ^
387 | } catch (e) {
388 | console.error('Error writing log entry:', e);
389 | }
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Logger.writeLogEntry (src/logger.ts:386:25)
at writeLogEntry (src/logger.ts:301:18)
at Array.forEach (<anonymous>)
at Immediate.forEach [as _onImmediate] (src/logger.ts:300:23)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO","High frequency log 1",{"index":1,"data":"data1"}],"level":"info"}
384 |
385 | // 批量写入时直接调用winston(在批量刷新时已经是异步的)
> 386 | this.logger[level](sanitizedArgs);
| ^
387 | } catch (e) {
388 | console.error('Error writing log entry:', e);
389 | }
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Logger.writeLogEntry (src/logger.ts:386:25)
at writeLogEntry (src/logger.ts:301:18)
at Array.forEach (<anonymous>)
at Immediate.forEach [as _onImmediate] (src/logger.ts:300:23)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO","High frequency log 2",{"index":2,"data":"data2"}],"level":"info"}
384 |
385 | // 批量写入时直接调用winston(在批量刷新时已经是异步的)
> 386 | this.logger[level](sanitizedArgs);
| ^
387 | } catch (e) {
388 | console.error('Error writing log entry:', e);
389 | }
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Logger.writeLogEntry (src/logger.ts:386:25)
at writeLogEntry (src/logger.ts:301:18)
at Array.forEach (<anonymous>)
at Immediate.forEach [as _onImmediate] (src/logger.ts:300:23)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO","High frequency log 3",{"index":3,"data":"data3"}],"level":"info"}
384 |
385 | // 批量写入时直接调用winston(在批量刷新时已经是异步的)
> 386 | this.logger[level](sanitizedArgs);
| ^
387 | } catch (e) {
388 | console.error('Error writing log entry:', e);
389 | }
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Logger.writeLogEntry (src/logger.ts:386:25)
at writeLogEntry (src/logger.ts:301:18)
at Array.forEach (<anonymous>)
at Immediate.forEach [as _onImmediate] (src/logger.ts:300:23)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO","High frequency log 4",{"index":4,"data":"data4"}],"level":"info"}
384 |
385 | // 批量写入时直接调用winston(在批量刷新时已经是异步的)
> 386 | this.logger[level](sanitizedArgs);
| ^
387 | } catch (e) {
388 | console.error('Error writing log entry:', e);
389 | }
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Logger.writeLogEntry (src/logger.ts:386:25)
at writeLogEntry (src/logger.ts:301:18)
at Array.forEach (<anonymous>)
at Immediate.forEach [as _onImmediate] (src/logger.ts:300:23)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO","High frequency log 5",{"index":5,"data":"data5"}],"level":"info"}
384 |
385 | // 批量写入时直接调用winston(在批量刷新时已经是异步的)
> 386 | this.logger[level](sanitizedArgs);
| ^
387 | } catch (e) {
388 | console.error('Error writing log entry:', e);
389 | }
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Logger.writeLogEntry (src/logger.ts:386:25)
at writeLogEntry (src/logger.ts:301:18)
at Array.forEach (<anonymous>)
at Immediate.forEach [as _onImmediate] (src/logger.ts:300:23)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO","High frequency log 6",{"index":6,"data":"data6"}],"level":"info"}
384 |
385 | // 批量写入时直接调用winston(在批量刷新时已经是异步的)
> 386 | this.logger[level](sanitizedArgs);
| ^
387 | } catch (e) {
388 | console.error('Error writing log entry:', e);
389 | }
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Logger.writeLogEntry (src/logger.ts:386:25)
at writeLogEntry (src/logger.ts:301:18)
at Array.forEach (<anonymous>)
at Immediate.forEach [as _onImmediate] (src/logger.ts:300:23)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO","High frequency log 7",{"index":7,"data":"data7"}],"level":"info"}
384 |
385 | // 批量写入时直接调用winston(在批量刷新时已经是异步的)
> 386 | this.logger[level](sanitizedArgs);
| ^
387 | } catch (e) {
388 | console.error('Error writing log entry:', e);
389 | }
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Logger.writeLogEntry (src/logger.ts:386:25)
at writeLogEntry (src/logger.ts:301:18)
at Array.forEach (<anonymous>)
at Immediate.forEach [as _onImmediate] (src/logger.ts:300:23)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO","High frequency log 8",{"index":8,"data":"data8"}],"level":"info"}
384 |
385 | // 批量写入时直接调用winston(在批量刷新时已经是异步的)
> 386 | this.logger[level](sanitizedArgs);
| ^
387 | } catch (e) {
388 | console.error('Error writing log entry:', e);
389 | }
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Logger.writeLogEntry (src/logger.ts:386:25)
at writeLogEntry (src/logger.ts:301:18)
at Array.forEach (<anonymous>)
at Immediate.forEach [as _onImmediate] (src/logger.ts:300:23)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO","High frequency log 9",{"index":9,"data":"data9"}],"level":"info"}
384 |
385 | // 批量写入时直接调用winston(在批量刷新时已经是异步的)
> 386 | this.logger[level](sanitizedArgs);
| ^
387 | } catch (e) {
388 | console.error('Error writing log entry:', e);
389 | }
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Logger.writeLogEntry (src/logger.ts:386:25)
at writeLogEntry (src/logger.ts:301:18)
at Array.forEach (<anonymous>)
at Immediate.forEach [as _onImmediate] (src/logger.ts:300:23)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO","High frequency log 10",{"index":10,"data":"data10"}],"level":"info"}
384 |
385 | // 批量写入时直接调用winston(在批量刷新时已经是异步的)
> 386 | this.logger[level](sanitizedArgs);
| ^
387 | } catch (e) {
388 | console.error('Error writing log entry:', e);
389 | }
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Logger.writeLogEntry (src/logger.ts:386:25)
at writeLogEntry (src/logger.ts:301:18)
at Array.forEach (<anonymous>)
at Immediate.forEach [as _onImmediate] (src/logger.ts:300:23)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO","High frequency log 11",{"index":11,"data":"data11"}],"level":"info"}
384 |
385 | // 批量写入时直接调用winston(在批量刷新时已经是异步的)
> 386 | this.logger[level](sanitizedArgs);
| ^
387 | } catch (e) {
388 | console.error('Error writing log entry:', e);
389 | }
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Logger.writeLogEntry (src/logger.ts:386:25)
at writeLogEntry (src/logger.ts:301:18)
at Array.forEach (<anonymous>)
at Immediate.forEach [as _onImmediate] (src/logger.ts:300:23)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO","High frequency log 12",{"index":12,"data":"data12"}],"level":"info"}
384 |
385 | // 批量写入时直接调用winston(在批量刷新时已经是异步的)
> 386 | this.logger[level](sanitizedArgs);
| ^
387 | } catch (e) {
388 | console.error('Error writing log entry:', e);
389 | }
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Logger.writeLogEntry (src/logger.ts:386:25)
at writeLogEntry (src/logger.ts:301:18)
at Array.forEach (<anonymous>)
at Immediate.forEach [as _onImmediate] (src/logger.ts:300:23)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO","High frequency log 13",{"index":13,"data":"data13"}],"level":"info"}
384 |
385 | // 批量写入时直接调用winston(在批量刷新时已经是异步的)
> 386 | this.logger[level](sanitizedArgs);
| ^
387 | } catch (e) {
388 | console.error('Error writing log entry:', e);
389 | }
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Logger.writeLogEntry (src/logger.ts:386:25)
at writeLogEntry (src/logger.ts:301:18)
at Array.forEach (<anonymous>)
at Immediate.forEach [as _onImmediate] (src/logger.ts:300:23)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO","High frequency log 14",{"index":14,"data":"data14"}],"level":"info"}
384 |
385 | // 批量写入时直接调用winston(在批量刷新时已经是异步的)
> 386 | this.logger[level](sanitizedArgs);
| ^
387 | } catch (e) {
388 | console.error('Error writing log entry:', e);
389 | }
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Logger.writeLogEntry (src/logger.ts:386:25)
at writeLogEntry (src/logger.ts:301:18)
at Array.forEach (<anonymous>)
at Immediate.forEach [as _onImmediate] (src/logger.ts:300:23)
console.error
[winston] Attempt to write logs with no transports, which can increase memory usage: {"message":["INFO","High frequency log 15",{"index":15,"data":"data15"}],"level":"info"}
384 |
385 | // 批量写入时直接调用winston(在批量刷新时已经是异步的)
> 386 | this.logger[level](sanitizedArgs);
| ^
387 | } catch (e) {
388 | console.error('Error writing log entry:', e);
389 | }
at DerivedLogger._transform (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js:326:15)
at DerivedLogger.Object.<anonymous>.Transform._read (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:166:10)
at DerivedLogger.Object.<anonymous>.Transform._write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_transform.js:155:83)
at doWrite (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:390:139)
at writeOrBuffer (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:381:5)
at DerivedLogger.Object.<anonymous>.Writable.write (../../node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/_stream_writable.js:302:11)
at DerivedLogger.<computed> [as info] (../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js:81:14)
at Logger.writeLogEntry (src/logger.ts:386:25)
at writeLogEntry (src/logger.ts:301:18)
at Array.forEach (<anonymous>)
at Immediate.forEach [as _onImmediate] (src/logger.ts:300:23)
[2026-01-28 11:45:06.588 +08:00] INFO first
[2026-01-28 11:45:06.588 +08:00] INFO second
[2026-01-28 11:45:06.588 +08:00] INFO third
PASS test/logger.test.ts
Logger Security Tests
✓ should fix error method bug (10 ms)
✓ should prevent path traversal attacks (37 ms)
✓ should prevent log injection attacks (1 ms)
✓ should filter dangerous characters in paths (1 ms)
✓ should allow safe paths (25 ms)
Logger Performance Tests
✓ should manage sensitive fields memory efficiently
✓ should handle deep objects with recursion limit (1 ms)
✓ should efficiently handle arrays (7 ms)
Logger Functionality Tests
✓ should create logger instance (1 ms)
✓ should manage log levels (1 ms)
✓ should handle sensitive field masking
✓ should handle various data types (1 ms)
ShieldField Tests
✓ should mask different length strings correctly
✓ should handle empty and special strings
Logger Batch Writing Tests
✓ should create logger with batch config (1 ms)
✓ should buffer logs when batch enabled
✓ should flush buffer manually (104 ms)
✓ should auto flush when buffer size exceeded (16 ms)
✓ should flush on timer interval (253 ms)
✓ should handle batch config updates (1 ms)
✓ should handle destroy with buffered logs (15 ms)
✓ should handle high-frequency logging efficiently (1 ms)
✓ should maintain log order in batch mode (59 ms)
📦 report is created on: /Users/richen/Workspace/nodejs/koatty-monorepo/packages/koatty-logger/jest_html_reporters.html
Test Suites: 1 passed, 1 total
Tests: 23 passed, 23 total
-----------|---------|----------|---------|---------|-------------------------------------------------------------------------------------------------------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
Snapshots: 0 total
Time: 3.319 s, estimated 4 s
-----------|---------|----------|---------|---------|-------------------------------------------------------------------------------------------------------------------
All files | 81.4 | 75.78 | 74.07 | 81.09 |
logger.ts | 78.97 | 75.32 | 72.54 | 78.75 | 95,99,124,143-151,207,222,238,256-259,305-306,317,330,351,366,388,408,439,456,473,490,514-531,557,583-593,621-622
Ran all test suites.
shield.ts | 91.48 | 77.77 | 100 | 91.11 | 43-44,48,87
-----------|---------|----------|---------|---------|-------------------------------------------------------------------------------------------------------------------
=============================== Coverage summary ===============================
Statements : 81.4% ( 197/242 )
Branches : 75.78% ( 72/95 )
Functions : 74.07% ( 40/54 )
Lines : 81.09% ( 193/238 )
================================================================================