standard-log 6.2.6 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/standard-log.js +3697 -3688
- package/dist/standard-log.js.gz +0 -0
- package/dist/standard-log.js.map +1 -1
- package/dist/standard-log.js.map.gz +0 -0
- package/lib/captureLogs.d.ts.map +1 -1
- package/lib/captureLogs.js +1 -1
- package/lib/captureLogs.js.map +1 -1
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +10 -2
- package/lib/config.js.map +1 -1
- package/lib/configForTest.d.ts.map +1 -1
- package/lib/configForTest.js +2 -0
- package/lib/configForTest.js.map +1 -1
- package/lib/memory/MemoryLogReporter.d.ts +1 -0
- package/lib/memory/MemoryLogReporter.d.ts.map +1 -1
- package/lib/memory/MemoryLogReporter.js +7 -8
- package/lib/memory/MemoryLogReporter.js.map +1 -1
- package/libm/captureLogs.d.ts.map +1 -1
- package/libm/captureLogs.js +1 -1
- package/libm/captureLogs.js.map +1 -1
- package/libm/config.d.ts.map +1 -1
- package/libm/config.js +10 -2
- package/libm/config.js.map +1 -1
- package/libm/configForTest.d.ts.map +1 -1
- package/libm/configForTest.js +2 -0
- package/libm/configForTest.js.map +1 -1
- package/libm/memory/MemoryLogReporter.d.ts +1 -0
- package/libm/memory/MemoryLogReporter.d.ts.map +1 -1
- package/libm/memory/MemoryLogReporter.js +5 -7
- package/libm/memory/MemoryLogReporter.js.map +1 -1
- package/package.json +2 -2
- package/src/captureLogs.spec.ts +3 -1
- package/src/captureLogs.ts +2 -2
- package/src/config.spec.ts +15 -7
- package/src/config.ts +10 -2
- package/src/configForTest.ts +2 -0
- package/src/console/createConsoleLogReporter.spec.ts +135 -127
- package/src/getLogger.spec.ts +1 -1
- package/src/logReporter.spec.ts +78 -67
- package/src/memory/MemoryLogReporter.spec.ts +80 -76
- package/src/memory/MemoryLogReporter.ts +5 -7
|
@@ -1,99 +1,103 @@
|
|
|
1
1
|
import a from 'assertron'
|
|
2
|
-
import { config, createMemoryLogReporter, ProhibitedDuringProduction } from '..'
|
|
3
|
-
import { logLevels } from '../logLevel'
|
|
2
|
+
import { config, createMemoryLogReporter, logLevels, ProhibitedDuringProduction } from '..'
|
|
4
3
|
import { store } from '../store'
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
store.reset()
|
|
8
|
-
|
|
9
|
-
})
|
|
10
|
-
|
|
11
|
-
const reporter = createMemoryLogReporter()
|
|
12
|
-
const entry = { id: 'log', level: 1, args: ['some messages'], timestamp: new Date() }
|
|
13
|
-
reporter.write(entry)
|
|
14
|
-
expect(reporter.logs).toEqual([entry])
|
|
15
|
-
})
|
|
16
|
-
|
|
17
|
-
test('can override id', () => {
|
|
18
|
-
const reporter = createMemoryLogReporter({ id: 'custom-id-mem' })
|
|
19
|
-
expect(reporter.id).toBe('custom-id-mem')
|
|
20
|
-
})
|
|
21
|
-
|
|
22
|
-
test('can filter', () => {
|
|
23
|
-
const reporter = createMemoryLogReporter({ filter(entry) { return entry.id !== 'secret' } })
|
|
24
|
-
reporter.write({ id: 'ok', level: 1, args: ['some messages'], timestamp: new Date() })
|
|
25
|
-
reporter.write({ id: 'secret', level: 1, args: ['some messages'], timestamp: new Date() })
|
|
26
|
-
expect(reporter.logs.length).toBe(1)
|
|
27
|
-
})
|
|
5
|
+
describe('production checks', () => {
|
|
6
|
+
beforeEach(() => store.reset())
|
|
7
|
+
test('set formatter in production mode throws', () => {
|
|
8
|
+
config({ mode: 'production' })
|
|
9
|
+
const reporter = createMemoryLogReporter()
|
|
28
10
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const filter = reporter.filter
|
|
32
|
-
reporter.filter = entry => entry.id !== 'secret'
|
|
33
|
-
expect(reporter.filter).not.toEqual(filter)
|
|
34
|
-
})
|
|
11
|
+
a.throws(() => { reporter.formatter = e => e }, ProhibitedDuringProduction)
|
|
12
|
+
})
|
|
35
13
|
|
|
36
|
-
test('set filter in production mode throws', () => {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
14
|
+
test('set filter in production mode throws', () => {
|
|
15
|
+
config({ mode: 'production' })
|
|
16
|
+
const reporter = createMemoryLogReporter()
|
|
17
|
+
a.throws(() => { reporter.filter = () => true }, ProhibitedDuringProduction)
|
|
18
|
+
})
|
|
40
19
|
})
|
|
41
20
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
21
|
+
describe('unit tests', () => {
|
|
22
|
+
beforeEach(() => {
|
|
23
|
+
store.reset()
|
|
24
|
+
config({ mode: 'test' })
|
|
25
|
+
})
|
|
26
|
+
test('log entries are saved in the `logs` property', () => {
|
|
27
|
+
const reporter = createMemoryLogReporter()
|
|
28
|
+
const entry = { id: 'log', level: 1, args: ['some messages'], timestamp: new Date() }
|
|
29
|
+
reporter.write(entry)
|
|
30
|
+
expect(reporter.logs).toEqual([entry])
|
|
48
31
|
})
|
|
49
32
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
})
|
|
33
|
+
test('can override id', () => {
|
|
34
|
+
const reporter = createMemoryLogReporter({ id: 'custom-id-mem' })
|
|
35
|
+
expect(reporter.id).toBe('custom-id-mem')
|
|
36
|
+
})
|
|
55
37
|
|
|
56
|
-
test('can
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
})
|
|
38
|
+
test('can filter', () => {
|
|
39
|
+
const reporter = createMemoryLogReporter({ filter(entry) { return entry.id !== 'secret' } })
|
|
40
|
+
reporter.write({ id: 'ok', level: 1, args: ['some messages'], timestamp: new Date() })
|
|
41
|
+
reporter.write({ id: 'secret', level: 1, args: ['some messages'], timestamp: new Date() })
|
|
42
|
+
expect(reporter.logs.length).toBe(1)
|
|
43
|
+
})
|
|
62
44
|
|
|
63
|
-
test('
|
|
64
|
-
|
|
65
|
-
|
|
45
|
+
test('can change filter', () => {
|
|
46
|
+
const reporter = createMemoryLogReporter()
|
|
47
|
+
const filter = reporter.filter
|
|
48
|
+
reporter.filter = entry => entry.id !== 'secret'
|
|
49
|
+
expect(reporter.filter).not.toEqual(filter)
|
|
50
|
+
})
|
|
66
51
|
|
|
67
|
-
|
|
68
|
-
|
|
52
|
+
test('formatter can be used to pre-process the log', () => {
|
|
53
|
+
const reporter = createMemoryLogReporter({
|
|
54
|
+
formatter: (entry) => ({
|
|
55
|
+
...entry,
|
|
56
|
+
args: entry.args.map(arg => arg === 'secret' ? '<censored>' : arg)
|
|
57
|
+
})
|
|
58
|
+
})
|
|
69
59
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const reporter = createMemoryLogReporter()
|
|
60
|
+
const entry = { id: 'log', level: 1, args: ['a', 'secret', 'b'], timestamp: new Date() }
|
|
61
|
+
reporter.write(entry)
|
|
73
62
|
|
|
74
|
-
expect(reporter.
|
|
63
|
+
expect(reporter.logs[0].args[1]).toBe('<censored>')
|
|
75
64
|
})
|
|
76
65
|
|
|
77
|
-
test('
|
|
66
|
+
test('can change formatter', () => {
|
|
78
67
|
const reporter = createMemoryLogReporter()
|
|
79
|
-
const
|
|
80
|
-
reporter.
|
|
81
|
-
expect(reporter.
|
|
68
|
+
const formatter = reporter.formatter
|
|
69
|
+
reporter.formatter = e => ({ ...e, args: e.args.reverse() })
|
|
70
|
+
expect(reporter.formatter).not.toEqual(formatter)
|
|
82
71
|
})
|
|
83
72
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
73
|
+
describe('getLogMessages()', () => {
|
|
74
|
+
test('empty logs returns empty string', () => {
|
|
75
|
+
const reporter = createMemoryLogReporter()
|
|
76
|
+
|
|
77
|
+
expect(reporter.getLogMessage()).toEqual('')
|
|
78
|
+
})
|
|
79
|
+
|
|
80
|
+
test('print args', () => {
|
|
81
|
+
const reporter = createMemoryLogReporter()
|
|
82
|
+
const entry = { id: 'log', level: 1, args: ['miku', 'is', 'singing'], timestamp: new Date() }
|
|
83
|
+
reporter.write(entry)
|
|
84
|
+
expect(reporter.getLogMessage()).toEqual('miku is singing')
|
|
85
|
+
})
|
|
86
|
+
|
|
87
|
+
test('print object arg', () => {
|
|
88
|
+
const reporter = createMemoryLogReporter()
|
|
89
|
+
const entry = { id: 'log', level: 1, args: [{ 'miku': 'sing' }], timestamp: new Date() }
|
|
90
|
+
reporter.write(entry)
|
|
91
|
+
expect(reporter.getLogMessage()).toEqual("{ miku: 'sing' }")
|
|
92
|
+
})
|
|
89
93
|
})
|
|
90
|
-
})
|
|
91
94
|
|
|
92
|
-
describe('getLogMessageWithLevel', () => {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
95
|
+
describe('getLogMessageWithLevel', () => {
|
|
96
|
+
test('print with level', () => {
|
|
97
|
+
const reporter = createMemoryLogReporter()
|
|
98
|
+
reporter.write({ id: 'log', level: logLevels.info, args: ['msg 1'], timestamp: new Date() })
|
|
99
|
+
reporter.write({ id: 'log', level: logLevels.warn, args: ['msg 2'], timestamp: new Date() })
|
|
100
|
+
expect(reporter.getLogMessageWithLevel()).toEqual(`(INFO) msg 1\n(WARN) msg 2`)
|
|
101
|
+
})
|
|
98
102
|
})
|
|
99
103
|
})
|
|
@@ -24,12 +24,10 @@ function createGetLogMessage() {
|
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
function
|
|
28
|
-
return
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
.join('\n')
|
|
32
|
-
}
|
|
27
|
+
export function toMessageWithLevel(logs: LogEntry[]) {
|
|
28
|
+
return logs.map(toInspectLogEntry)
|
|
29
|
+
.map(log => `${formatLogLevel(log.level)} ${log.args.join(' ')}`)
|
|
30
|
+
.join('\n')
|
|
33
31
|
}
|
|
34
32
|
|
|
35
33
|
|
|
@@ -59,6 +57,6 @@ export function createMemoryLogReporter(options?: LogReporterOptions<LogEntry>):
|
|
|
59
57
|
this.logs.push(formatter(entry))
|
|
60
58
|
},
|
|
61
59
|
getLogMessage: createGetLogMessage(),
|
|
62
|
-
getLogMessageWithLevel
|
|
60
|
+
getLogMessageWithLevel() { return toMessageWithLevel(this.logs) }
|
|
63
61
|
}
|
|
64
62
|
}
|