Skip to content

Commit 3b187a5

Browse files
committed
[#376] Support ESM
1 parent b61c6a5 commit 3b187a5

File tree

4 files changed

+39
-2
lines changed

4 files changed

+39
-2
lines changed

lib/agent-builder.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66

77
import { Config } from './config';
8+
import type { Logging } from './utils/log/types';
89
import AgentInfo = require('./data/dto/agent-info');
910

1011
interface TraceObject {
@@ -44,6 +45,7 @@ declare class AgentBuilder {
4445

4546
setConfig(config: Config): AgentBuilder;
4647
setDataSender(dataSender: DataSender): AgentBuilder;
48+
setLogger(logger: Logging): AgentBuilder;
4749
addService(service: () => void): AgentBuilder;
4850
disableStatsScheduler(): AgentBuilder;
4951
disablePingScheduler(): AgentBuilder;

lib/utils/log/log-builder.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ class LogBuilder {
8787
build() {
8888
if (!this.config) {
8989
const noConfigLog = new NoConfigLog(this.name, this.level)
90-
noConfigLog.appenders = this.appenders
90+
noConfigLog.appenders = [...this.appenders]
9191
return noConfigLog
9292
}
9393

lib/utils/log/types.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export declare class Logger implements Logging {
6666
isDebug(): boolean;
6767
isInfo(): boolean;
6868

69-
getLogger(log?: Log | string): Logger;
69+
getLogger(log?: Log | string): Logging;
7070
}
7171

7272
export declare class ChildLogger implements Logging {

test/utils/log/logger.test.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,41 @@ test('appenders', (t) => {
5959
t.equal(testLog2.appenders.length, 1, 'appenders length with valid appender')
6060
})
6161

62+
test('no config logs clone appenders array', (t) => {
63+
t.plan(3)
64+
65+
const builder = new LogBuilder('no-config-appenders')
66+
const firstAppender = {
67+
name: 'first-appender',
68+
loggingLevel: levels.DEBUG,
69+
debug: (msg) => msg,
70+
info: (msg) => msg,
71+
warn: (msg) => msg,
72+
error: (msg) => msg
73+
}
74+
75+
builder.addAppender(firstAppender)
76+
77+
const initialLog = builder.build()
78+
79+
t.equal(initialLog.getAppenders().length, 1, 'no config log should include existing appenders')
80+
81+
const secondAppender = {
82+
name: 'second-appender',
83+
loggingLevel: levels.DEBUG,
84+
debug: (msg) => msg,
85+
info: (msg) => msg,
86+
warn: (msg) => msg,
87+
error: (msg) => msg
88+
}
89+
90+
builder.addAppender(secondAppender)
91+
const refreshedLog = builder.build()
92+
93+
t.equal(initialLog.getAppenders().length, 1, 'modifying builder appenders should not affect existing no config log')
94+
t.equal(refreshedLog.getAppenders().length, 2, 'subsequent builds should reflect new appenders')
95+
})
96+
6297
test('addAppender validation', (t) => {
6398
t.plan(8)
6499

0 commit comments

Comments
 (0)