Skip to content

Commit 5aed458

Browse files
committed
refactor log config to a class
1 parent 0ab11e2 commit 5aed458

File tree

4 files changed

+27
-11
lines changed

4 files changed

+27
-11
lines changed

packages/dd-trace/src/exporters/agent/writer.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class Writer extends BaseWriter {
4242
startupLog({ agentError: err })
4343

4444
if (err) {
45-
log.error('Error sending payload to the agent (status code: %s)', err.status, { transmit: false }, err)
45+
log.error('Error sending payload to the agent (status code: %s)', err.status, err, log.MUTE)
4646
done()
4747
return
4848
}

packages/dd-trace/src/log/index.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const { inspect } = require('util')
55
const { isTrue } = require('../util')
66
const { traceChannel, debugChannel, infoChannel, warnChannel, errorChannel } = require('./channels')
77
const logWriter = require('./writer')
8-
const { Log } = require('./log')
8+
const { Log, LogConfig } = require('./log')
99
const { memoize } = require('./utils')
1010
const { getEnvironmentVariable } = require('../config-helper')
1111

@@ -15,7 +15,12 @@ const config = {
1515
logLevel: 'debug'
1616
}
1717

18+
const mute = new LogConfig(false)
19+
1820
const log = {
21+
LogConfig,
22+
MUTE: mute,
23+
1924
/**
2025
* @returns Read-only version of logging config. To modify config, call `log.use` and `log.toggle`
2126
*/

packages/dd-trace/src/log/log.js

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,16 @@ class Log {
2727

2828
{
2929
const lastArg = args.at(-1)
30-
if (lastArg && typeof lastArg === 'object' && lastArg.stack) { // lastArg instanceof Error?
31-
cause = args.pop()
30+
if (lastArg instanceof LogConfig) {
31+
args.pop()
32+
sendViaTelemetry = lastArg.transmit
3233
}
3334
}
3435

35-
if (args.length >= 2) {
36-
const meta = args.at(-1)
37-
if (meta && typeof meta === 'object') {
38-
args.pop()
39-
sendViaTelemetry = meta.transmit !== false
36+
{
37+
const lastArg = args.at(-1)
38+
if (lastArg && typeof lastArg === 'object' && lastArg.stack) { // lastArg instanceof Error?
39+
cause = args.pop()
4040
}
4141
}
4242

@@ -59,6 +59,17 @@ class Log {
5959
}
6060
}
6161

62+
/**
63+
* Pass instances of this class to logger methods when fine-grain control is needed
64+
* @property {boolean} transmit - Whether to send the log via telemetry.
65+
*/
66+
class LogConfig {
67+
constructor (transmit = true) {
68+
this.transmit = transmit
69+
}
70+
}
71+
6272
module.exports = {
63-
Log
73+
Log,
74+
LogConfig
6475
}

packages/dd-trace/src/remote_config/manager.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ class RemoteConfigManager extends EventEmitter {
153153
if (statusCode === 404) return cb()
154154

155155
if (err) {
156-
log.error('[RC] Error in request', { transmit: false }, err)
156+
log.error('[RC] Error in request', err, log.MUTE)
157157
return cb()
158158
}
159159

0 commit comments

Comments
 (0)