chalk-config 0.0.1-security → 2.14.7
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.
Potentially problematic release.
This version of chalk-config might be problematic. Click here for more details.
- package/.eslintignore +2 -0
- package/.eslintrc +8 -0
- package/.github/dependabot.yml +13 -0
- package/.github/workflows/bench.yml +61 -0
- package/.github/workflows/ci.yml +88 -0
- package/.github/workflows/lock-threads.yml +30 -0
- package/.github/workflows/target-main.yml +23 -0
- package/.nojekyll +0 -0
- package/.prettierignore +1 -0
- package/.taprc.yaml +8 -0
- package/CNAME +1 -0
- package/CONTRIBUTING.md +30 -0
- package/LICENSE +21 -0
- package/README.md +159 -3
- package/SECURITY.md +68 -0
- package/benchmarks/basic.bench.js +95 -0
- package/benchmarks/child-child.bench.js +52 -0
- package/benchmarks/child-creation.bench.js +73 -0
- package/benchmarks/child.bench.js +62 -0
- package/benchmarks/deep-object.bench.js +88 -0
- package/benchmarks/formatters.bench.js +50 -0
- package/benchmarks/internal/custom-levels.js +67 -0
- package/benchmarks/internal/just-pino-heavy.bench.js +76 -0
- package/benchmarks/internal/just-pino.bench.js +182 -0
- package/benchmarks/internal/parent-vs-child.bench.js +75 -0
- package/benchmarks/internal/redact.bench.js +86 -0
- package/benchmarks/long-string.bench.js +81 -0
- package/benchmarks/multi-arg.bench.js +193 -0
- package/benchmarks/multistream.js +98 -0
- package/benchmarks/object.bench.js +82 -0
- package/benchmarks/utils/generate-benchmark-doc.js +36 -0
- package/benchmarks/utils/runbench.js +138 -0
- package/benchmarks/utils/wrap-log-level.js +55 -0
- package/bin.js +6 -0
- package/browser.js +484 -0
- package/build/sync-version.js +10 -0
- package/docs/api.md +1487 -0
- package/docs/asynchronous.md +40 -0
- package/docs/benchmarks.md +55 -0
- package/docs/browser.md +227 -0
- package/docs/bundling.md +40 -0
- package/docs/child-loggers.md +95 -0
- package/docs/ecosystem.md +84 -0
- package/docs/help.md +345 -0
- package/docs/lts.md +64 -0
- package/docs/pretty.md +35 -0
- package/docs/redaction.md +135 -0
- package/docs/transports.md +1238 -0
- package/docs/web.md +269 -0
- package/docsify/sidebar.md +26 -0
- package/examples/basic.js +43 -0
- package/examples/transport.js +68 -0
- package/favicon-16x16.png +0 -0
- package/favicon-32x32.png +0 -0
- package/favicon.ico +0 -0
- package/file.js +12 -0
- package/inc-version.sh +42 -0
- package/index.html +55 -0
- package/lib/caller.js +30 -0
- package/lib/constants.js +28 -0
- package/lib/deprecations.js +8 -0
- package/lib/levels.js +241 -0
- package/lib/meta.js +3 -0
- package/lib/multistream.js +188 -0
- package/lib/proto.js +234 -0
- package/lib/redaction.js +118 -0
- package/lib/symbols.js +74 -0
- package/lib/time.js +11 -0
- package/lib/tools.js +394 -0
- package/lib/transport-stream.js +56 -0
- package/lib/transport.js +167 -0
- package/lib/worker.js +194 -0
- package/lib/writer.js +42 -0
- package/package.json +118 -3
- package/pino-banner.png +0 -0
- package/pino-logo-hire.png +0 -0
- package/pino-tree.png +0 -0
- package/pino.d.ts +889 -0
- package/pino.js +236 -0
- package/pretty-demo.png +0 -0
- package/test/basic.test.js +874 -0
- package/test/broken-pipe.test.js +57 -0
- package/test/browser-child.test.js +132 -0
- package/test/browser-disabled.test.js +87 -0
- package/test/browser-early-console-freeze.test.js +12 -0
- package/test/browser-levels.test.js +241 -0
- package/test/browser-serializers.test.js +352 -0
- package/test/browser-timestamp.test.js +88 -0
- package/test/browser-transmit.test.js +417 -0
- package/test/browser.test.js +659 -0
- package/test/complex-objects.test.js +34 -0
- package/test/crlf.test.js +32 -0
- package/test/custom-levels.test.js +253 -0
- package/test/error.test.js +398 -0
- package/test/errorKey.test.js +34 -0
- package/test/escaping.test.js +91 -0
- package/test/esm/esm.mjs +12 -0
- package/test/esm/index.test.js +34 -0
- package/test/esm/named-exports.mjs +27 -0
- package/test/exit.test.js +77 -0
- package/test/fixtures/broken-pipe/basic.js +9 -0
- package/test/fixtures/broken-pipe/destination.js +10 -0
- package/test/fixtures/broken-pipe/syncfalse.js +12 -0
- package/test/fixtures/console-transport.js +13 -0
- package/test/fixtures/default-exit.js +8 -0
- package/test/fixtures/destination-exit.js +8 -0
- package/test/fixtures/eval/index.js +13 -0
- package/test/fixtures/eval/node_modules/14-files.js +3 -0
- package/test/fixtures/eval/node_modules/2-files.js +3 -0
- package/test/fixtures/eval/node_modules/file1.js +5 -0
- package/test/fixtures/eval/node_modules/file10.js +5 -0
- package/test/fixtures/eval/node_modules/file11.js +5 -0
- package/test/fixtures/eval/node_modules/file12.js +5 -0
- package/test/fixtures/eval/node_modules/file13.js +5 -0
- package/test/fixtures/eval/node_modules/file14.js +11 -0
- package/test/fixtures/eval/node_modules/file2.js +5 -0
- package/test/fixtures/eval/node_modules/file3.js +5 -0
- package/test/fixtures/eval/node_modules/file4.js +5 -0
- package/test/fixtures/eval/node_modules/file5.js +5 -0
- package/test/fixtures/eval/node_modules/file6.js +5 -0
- package/test/fixtures/eval/node_modules/file7.js +5 -0
- package/test/fixtures/eval/node_modules/file8.js +5 -0
- package/test/fixtures/eval/node_modules/file9.js +5 -0
- package/test/fixtures/noop-transport.js +10 -0
- package/test/fixtures/pretty/null-prototype.js +8 -0
- package/test/fixtures/stdout-hack-protection.js +11 -0
- package/test/fixtures/syncfalse-child.js +6 -0
- package/test/fixtures/syncfalse-exit.js +9 -0
- package/test/fixtures/syncfalse-flush-exit.js +10 -0
- package/test/fixtures/syncfalse.js +6 -0
- package/test/fixtures/syntax-error-esm.mjs +2 -0
- package/test/fixtures/to-file-transport-with-transform.js +20 -0
- package/test/fixtures/to-file-transport.js +13 -0
- package/test/fixtures/to-file-transport.mjs +8 -0
- package/test/fixtures/transport/index.js +12 -0
- package/test/fixtures/transport/package.json +5 -0
- package/test/fixtures/transport-exit-immediately-with-async-dest.js +16 -0
- package/test/fixtures/transport-exit-immediately.js +11 -0
- package/test/fixtures/transport-exit-on-ready.js +12 -0
- package/test/fixtures/transport-main.js +9 -0
- package/test/fixtures/transport-many-lines.js +29 -0
- package/test/fixtures/transport-string-stdout.js +9 -0
- package/test/fixtures/transport-transform.js +21 -0
- package/test/fixtures/transport-uses-pino-config.js +33 -0
- package/test/fixtures/transport-with-on-exit.js +12 -0
- package/test/fixtures/transport-worker-data.js +19 -0
- package/test/fixtures/transport-worker.js +15 -0
- package/test/fixtures/transport-wrong-export-type.js +3 -0
- package/test/fixtures/ts/to-file-transport-with-transform.ts +18 -0
- package/test/fixtures/ts/to-file-transport.ts +11 -0
- package/test/fixtures/ts/transpile.cjs +36 -0
- package/test/fixtures/ts/transport-exit-immediately-with-async-dest.ts +15 -0
- package/test/fixtures/ts/transport-exit-immediately.ts +10 -0
- package/test/fixtures/ts/transport-exit-on-ready.ts +11 -0
- package/test/fixtures/ts/transport-main.ts +8 -0
- package/test/fixtures/ts/transport-string-stdout.ts +8 -0
- package/test/fixtures/ts/transport-worker.ts +14 -0
- package/test/formatters.test.js +355 -0
- package/test/helper.d.ts +4 -0
- package/test/helper.js +128 -0
- package/test/hooks.test.js +118 -0
- package/test/http.test.js +242 -0
- package/test/internals/version.test.js +15 -0
- package/test/is-level-enabled.test.js +185 -0
- package/test/jest/basic.spec.js +10 -0
- package/test/levels.test.js +772 -0
- package/test/metadata.test.js +106 -0
- package/test/mixin-merge-strategy.test.js +55 -0
- package/test/mixin.test.js +218 -0
- package/test/multistream.test.js +673 -0
- package/test/pkg/index.js +46 -0
- package/test/pkg/pkg.config.json +17 -0
- package/test/pkg/pkg.test.js +56 -0
- package/test/redact.test.js +847 -0
- package/test/serializers.test.js +253 -0
- package/test/stdout-protection.test.js +39 -0
- package/test/syncfalse.test.js +188 -0
- package/test/timestamp.test.js +121 -0
- package/test/transport/big.test.js +43 -0
- package/test/transport/bundlers-support.test.js +97 -0
- package/test/transport/caller.test.js +23 -0
- package/test/transport/core.test.js +644 -0
- package/test/transport/core.test.ts +236 -0
- package/test/transport/core.transpiled.test.ts +112 -0
- package/test/transport/module-link.test.js +239 -0
- package/test/transport/pipeline.test.js +135 -0
- package/test/transport/repl.test.js +14 -0
- package/test/transport/syncTrue.test.js +55 -0
- package/test/transport/syncfalse.test.js +68 -0
- package/test/transport/targets.test.js +44 -0
- package/test/transport/uses-pino-config.test.js +167 -0
- package/test/transport-stream.test.js +26 -0
- package/test/types/pino-import.test-d.ts +29 -0
- package/test/types/pino-multistream.test-d.ts +28 -0
- package/test/types/pino-top-export.test-d.ts +35 -0
- package/test/types/pino-transport.test-d.ts +145 -0
- package/test/types/pino-type-only.test-d.ts +64 -0
- package/test/types/pino.test-d.ts +468 -0
- package/test/types/pino.ts +78 -0
- package/tsconfig.json +14 -0
@@ -0,0 +1,73 @@
|
|
1
|
+
'use strict'
|
2
|
+
|
3
|
+
const bench = require('fastbench')
|
4
|
+
const pino = require('../')
|
5
|
+
const bunyan = require('bunyan')
|
6
|
+
const bole = require('bole')('bench')
|
7
|
+
const fs = require('node:fs')
|
8
|
+
const dest = fs.createWriteStream('/dev/null')
|
9
|
+
const plogNodeStream = pino(dest)
|
10
|
+
const plogDest = pino(pino.destination(('/dev/null')))
|
11
|
+
delete require.cache[require.resolve('../')]
|
12
|
+
const plogMinLength = require('../')(pino.destination({ dest: '/dev/null', sync: false, minLength: 4096 }))
|
13
|
+
|
14
|
+
const max = 10
|
15
|
+
const blog = bunyan.createLogger({
|
16
|
+
name: 'myapp',
|
17
|
+
streams: [{
|
18
|
+
level: 'trace',
|
19
|
+
stream: dest
|
20
|
+
}]
|
21
|
+
})
|
22
|
+
|
23
|
+
require('bole').output({
|
24
|
+
level: 'info',
|
25
|
+
stream: dest
|
26
|
+
}).setFastTime(true)
|
27
|
+
|
28
|
+
const run = bench([
|
29
|
+
function benchBunyanCreation (cb) {
|
30
|
+
const child = blog.child({ a: 'property' })
|
31
|
+
for (var i = 0; i < max; i++) {
|
32
|
+
child.info({ hello: 'world' })
|
33
|
+
}
|
34
|
+
setImmediate(cb)
|
35
|
+
},
|
36
|
+
function benchBoleCreation (cb) {
|
37
|
+
const child = bole('child')
|
38
|
+
for (var i = 0; i < max; i++) {
|
39
|
+
child.info({ hello: 'world' })
|
40
|
+
}
|
41
|
+
setImmediate(cb)
|
42
|
+
},
|
43
|
+
function benchPinoCreation (cb) {
|
44
|
+
const child = plogDest.child({ a: 'property' })
|
45
|
+
for (var i = 0; i < max; i++) {
|
46
|
+
child.info({ hello: 'world' })
|
47
|
+
}
|
48
|
+
setImmediate(cb)
|
49
|
+
},
|
50
|
+
function benchPinoMinLengthCreation (cb) {
|
51
|
+
const child = plogMinLength.child({ a: 'property' })
|
52
|
+
for (var i = 0; i < max; i++) {
|
53
|
+
child.info({ hello: 'world' })
|
54
|
+
}
|
55
|
+
setImmediate(cb)
|
56
|
+
},
|
57
|
+
function benchPinoNodeStreamCreation (cb) {
|
58
|
+
const child = plogNodeStream.child({ a: 'property' })
|
59
|
+
for (var i = 0; i < max; i++) {
|
60
|
+
child.info({ hello: 'world' })
|
61
|
+
}
|
62
|
+
setImmediate(cb)
|
63
|
+
},
|
64
|
+
function benchPinoCreationWithOption (cb) {
|
65
|
+
const child = plogDest.child({ a: 'property' }, { redact: [] })
|
66
|
+
for (var i = 0; i < max; i++) {
|
67
|
+
child.info({ hello: 'world' })
|
68
|
+
}
|
69
|
+
setImmediate(cb)
|
70
|
+
}
|
71
|
+
], 10000)
|
72
|
+
|
73
|
+
run(run)
|
@@ -0,0 +1,62 @@
|
|
1
|
+
'use strict'
|
2
|
+
|
3
|
+
const bench = require('fastbench')
|
4
|
+
const pino = require('../')
|
5
|
+
const bunyan = require('bunyan')
|
6
|
+
const bole = require('bole')('bench')('child')
|
7
|
+
const fs = require('node:fs')
|
8
|
+
const dest = fs.createWriteStream('/dev/null')
|
9
|
+
const plogNodeStream = pino(dest).child({ a: 'property' })
|
10
|
+
delete require.cache[require.resolve('../')]
|
11
|
+
const plogDest = require('../')(pino.destination('/dev/null')).child({ a: 'property' })
|
12
|
+
delete require.cache[require.resolve('../')]
|
13
|
+
const plogMinLength = require('../')(pino.destination({ dest: '/dev/null', sync: false, minLength: 4096 }))
|
14
|
+
|
15
|
+
const max = 10
|
16
|
+
const blog = bunyan.createLogger({
|
17
|
+
name: 'myapp',
|
18
|
+
streams: [{
|
19
|
+
level: 'trace',
|
20
|
+
stream: dest
|
21
|
+
}]
|
22
|
+
}).child({ a: 'property' })
|
23
|
+
|
24
|
+
require('bole').output({
|
25
|
+
level: 'info',
|
26
|
+
stream: dest
|
27
|
+
}).setFastTime(true)
|
28
|
+
|
29
|
+
const run = bench([
|
30
|
+
function benchBunyanChild (cb) {
|
31
|
+
for (var i = 0; i < max; i++) {
|
32
|
+
blog.info({ hello: 'world' })
|
33
|
+
}
|
34
|
+
setImmediate(cb)
|
35
|
+
},
|
36
|
+
function benchBoleChild (cb) {
|
37
|
+
for (var i = 0; i < max; i++) {
|
38
|
+
bole.info({ hello: 'world' })
|
39
|
+
}
|
40
|
+
setImmediate(cb)
|
41
|
+
},
|
42
|
+
function benchPinoChild (cb) {
|
43
|
+
for (var i = 0; i < max; i++) {
|
44
|
+
plogDest.info({ hello: 'world' })
|
45
|
+
}
|
46
|
+
setImmediate(cb)
|
47
|
+
},
|
48
|
+
function benchPinoMinLengthChild (cb) {
|
49
|
+
for (var i = 0; i < max; i++) {
|
50
|
+
plogMinLength.info({ hello: 'world' })
|
51
|
+
}
|
52
|
+
setImmediate(cb)
|
53
|
+
},
|
54
|
+
function benchPinoNodeStreamChild (cb) {
|
55
|
+
for (var i = 0; i < max; i++) {
|
56
|
+
plogNodeStream.info({ hello: 'world' })
|
57
|
+
}
|
58
|
+
setImmediate(cb)
|
59
|
+
}
|
60
|
+
], 10000)
|
61
|
+
|
62
|
+
run(run)
|
@@ -0,0 +1,88 @@
|
|
1
|
+
'use strict'
|
2
|
+
|
3
|
+
const bench = require('fastbench')
|
4
|
+
const pino = require('../')
|
5
|
+
const bunyan = require('bunyan')
|
6
|
+
const bole = require('bole')('bench')
|
7
|
+
const winston = require('winston')
|
8
|
+
const fs = require('node:fs')
|
9
|
+
const dest = fs.createWriteStream('/dev/null')
|
10
|
+
const plogNodeStream = pino(dest)
|
11
|
+
delete require.cache[require.resolve('../')]
|
12
|
+
const plogDest = require('../')(pino.destination('/dev/null'))
|
13
|
+
delete require.cache[require.resolve('../')]
|
14
|
+
const plogMinLength = require('../')(pino.destination({ dest: '/dev/null', sync: false, minLength: 4096 }))
|
15
|
+
delete require.cache[require.resolve('../')]
|
16
|
+
|
17
|
+
const loglevel = require('./utils/wrap-log-level')(dest)
|
18
|
+
|
19
|
+
const deep = Object.assign({}, require('../package.json'), { level: 'info' })
|
20
|
+
|
21
|
+
const max = 10
|
22
|
+
const blog = bunyan.createLogger({
|
23
|
+
name: 'myapp',
|
24
|
+
streams: [{
|
25
|
+
level: 'trace',
|
26
|
+
stream: dest
|
27
|
+
}]
|
28
|
+
})
|
29
|
+
|
30
|
+
require('bole').output({
|
31
|
+
level: 'info',
|
32
|
+
stream: dest
|
33
|
+
}).setFastTime(true)
|
34
|
+
|
35
|
+
const chill = winston.createLogger({
|
36
|
+
transports: [
|
37
|
+
new winston.transports.Stream({
|
38
|
+
stream: fs.createWriteStream('/dev/null')
|
39
|
+
})
|
40
|
+
]
|
41
|
+
})
|
42
|
+
|
43
|
+
const run = bench([
|
44
|
+
function benchBunyanDeepObj (cb) {
|
45
|
+
for (var i = 0; i < max; i++) {
|
46
|
+
blog.info(deep)
|
47
|
+
}
|
48
|
+
setImmediate(cb)
|
49
|
+
},
|
50
|
+
function benchWinstonDeepObj (cb) {
|
51
|
+
for (var i = 0; i < max; i++) {
|
52
|
+
chill.log(deep)
|
53
|
+
}
|
54
|
+
setImmediate(cb)
|
55
|
+
},
|
56
|
+
function benchBoleDeepObj (cb) {
|
57
|
+
for (var i = 0; i < max; i++) {
|
58
|
+
bole.info(deep)
|
59
|
+
}
|
60
|
+
setImmediate(cb)
|
61
|
+
},
|
62
|
+
function benchLogLevelDeepObj (cb) {
|
63
|
+
for (var i = 0; i < max; i++) {
|
64
|
+
loglevel.info(deep)
|
65
|
+
}
|
66
|
+
setImmediate(cb)
|
67
|
+
},
|
68
|
+
function benchPinoDeepObj (cb) {
|
69
|
+
for (var i = 0; i < max; i++) {
|
70
|
+
plogDest.info(deep)
|
71
|
+
}
|
72
|
+
setImmediate(cb)
|
73
|
+
},
|
74
|
+
function benchPinoMinLengthDeepObj (cb) {
|
75
|
+
for (var i = 0; i < max; i++) {
|
76
|
+
plogMinLength.info(deep)
|
77
|
+
}
|
78
|
+
setImmediate(cb)
|
79
|
+
},
|
80
|
+
function benchPinoNodeStreamDeepObj (cb) {
|
81
|
+
for (var i = 0; i < max; i++) {
|
82
|
+
plogNodeStream.info(deep)
|
83
|
+
}
|
84
|
+
setImmediate(cb)
|
85
|
+
}
|
86
|
+
], 10000)
|
87
|
+
|
88
|
+
run(run)
|
@@ -0,0 +1,50 @@
|
|
1
|
+
'use strict'
|
2
|
+
|
3
|
+
const formatters = {
|
4
|
+
level (label, number) {
|
5
|
+
return {
|
6
|
+
log: {
|
7
|
+
level: label
|
8
|
+
}
|
9
|
+
}
|
10
|
+
},
|
11
|
+
bindings (bindings) {
|
12
|
+
return {
|
13
|
+
process: {
|
14
|
+
pid: bindings.pid
|
15
|
+
},
|
16
|
+
host: {
|
17
|
+
name: bindings.hostname
|
18
|
+
}
|
19
|
+
}
|
20
|
+
},
|
21
|
+
log (obj) {
|
22
|
+
return { foo: 'bar', ...obj }
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
const bench = require('fastbench')
|
27
|
+
const pino = require('../')
|
28
|
+
delete require.cache[require.resolve('../')]
|
29
|
+
const pinoNoFormatters = require('../')(pino.destination('/dev/null'))
|
30
|
+
delete require.cache[require.resolve('../')]
|
31
|
+
const pinoFormatters = require('../')({ formatters }, pino.destination('/dev/null'))
|
32
|
+
|
33
|
+
const max = 10
|
34
|
+
|
35
|
+
const run = bench([
|
36
|
+
function benchPinoNoFormatters (cb) {
|
37
|
+
for (var i = 0; i < max; i++) {
|
38
|
+
pinoNoFormatters.info({ hello: 'world' })
|
39
|
+
}
|
40
|
+
setImmediate(cb)
|
41
|
+
},
|
42
|
+
function benchPinoFormatters (cb) {
|
43
|
+
for (var i = 0; i < max; i++) {
|
44
|
+
pinoFormatters.info({ hello: 'world' })
|
45
|
+
}
|
46
|
+
setImmediate(cb)
|
47
|
+
}
|
48
|
+
], 10000)
|
49
|
+
|
50
|
+
run(run)
|
@@ -0,0 +1,67 @@
|
|
1
|
+
'use strict'
|
2
|
+
|
3
|
+
const bench = require('fastbench')
|
4
|
+
const pino = require('../../')
|
5
|
+
|
6
|
+
const base = pino(pino.destination('/dev/null'))
|
7
|
+
const baseCl = pino({
|
8
|
+
customLevels: { foo: 31 }
|
9
|
+
}, pino.destination('/dev/null'))
|
10
|
+
const child = base.child({})
|
11
|
+
const childCl = base.child({
|
12
|
+
customLevels: { foo: 31 }
|
13
|
+
})
|
14
|
+
const childOfBaseCl = baseCl.child({})
|
15
|
+
|
16
|
+
const max = 100
|
17
|
+
|
18
|
+
const run = bench([
|
19
|
+
function benchPinoNoCustomLevel (cb) {
|
20
|
+
for (var i = 0; i < max; i++) {
|
21
|
+
base.info({ hello: 'world' })
|
22
|
+
}
|
23
|
+
setImmediate(cb)
|
24
|
+
},
|
25
|
+
function benchPinoCustomLevel (cb) {
|
26
|
+
for (var i = 0; i < max; i++) {
|
27
|
+
baseCl.foo({ hello: 'world' })
|
28
|
+
}
|
29
|
+
setImmediate(cb)
|
30
|
+
},
|
31
|
+
function benchChildNoCustomLevel (cb) {
|
32
|
+
for (var i = 0; i < max; i++) {
|
33
|
+
child.info({ hello: 'world' })
|
34
|
+
}
|
35
|
+
setImmediate(cb)
|
36
|
+
},
|
37
|
+
function benchPinoChildCustomLevel (cb) {
|
38
|
+
for (var i = 0; i < max; i++) {
|
39
|
+
childCl.foo({ hello: 'world' })
|
40
|
+
}
|
41
|
+
setImmediate(cb)
|
42
|
+
},
|
43
|
+
function benchPinoChildInheritedCustomLevel (cb) {
|
44
|
+
for (var i = 0; i < max; i++) {
|
45
|
+
childOfBaseCl.foo({ hello: 'world' })
|
46
|
+
}
|
47
|
+
setImmediate(cb)
|
48
|
+
},
|
49
|
+
function benchPinoChildCreation (cb) {
|
50
|
+
const child = base.child({})
|
51
|
+
for (var i = 0; i < max; i++) {
|
52
|
+
child.info({ hello: 'world' })
|
53
|
+
}
|
54
|
+
setImmediate(cb)
|
55
|
+
},
|
56
|
+
function benchPinoChildCreationCustomLevel (cb) {
|
57
|
+
const child = base.child({
|
58
|
+
customLevels: { foo: 31 }
|
59
|
+
})
|
60
|
+
for (var i = 0; i < max; i++) {
|
61
|
+
child.foo({ hello: 'world' })
|
62
|
+
}
|
63
|
+
setImmediate(cb)
|
64
|
+
}
|
65
|
+
], 10000)
|
66
|
+
|
67
|
+
run(run)
|
@@ -0,0 +1,76 @@
|
|
1
|
+
'use strict'
|
2
|
+
|
3
|
+
const bench = require('fastbench')
|
4
|
+
const pino = require('../../')
|
5
|
+
const fs = require('node:fs')
|
6
|
+
const dest = fs.createWriteStream('/dev/null')
|
7
|
+
const plog = pino(dest)
|
8
|
+
delete require.cache[require.resolve('../../')]
|
9
|
+
const plogDest = require('../../')(pino.destination('/dev/null'))
|
10
|
+
delete require.cache[require.resolve('../../')]
|
11
|
+
const plogAsync = require('../../')(pino.destination({ dest: '/dev/null', sync: false }))
|
12
|
+
const deep = require('../../package.json')
|
13
|
+
deep.deep = JSON.parse(JSON.stringify(deep))
|
14
|
+
deep.deep.deep = JSON.parse(JSON.stringify(deep))
|
15
|
+
const longStr = JSON.stringify(deep)
|
16
|
+
|
17
|
+
const max = 10
|
18
|
+
|
19
|
+
const run = bench([
|
20
|
+
function benchPinoLongString (cb) {
|
21
|
+
for (var i = 0; i < max; i++) {
|
22
|
+
plog.info(longStr)
|
23
|
+
}
|
24
|
+
setImmediate(cb)
|
25
|
+
},
|
26
|
+
function benchPinoDestLongString (cb) {
|
27
|
+
for (var i = 0; i < max; i++) {
|
28
|
+
plogDest.info(longStr)
|
29
|
+
}
|
30
|
+
setImmediate(cb)
|
31
|
+
},
|
32
|
+
function benchPinoAsyncLongString (cb) {
|
33
|
+
for (var i = 0; i < max; i++) {
|
34
|
+
plogAsync.info(longStr)
|
35
|
+
}
|
36
|
+
setImmediate(cb)
|
37
|
+
},
|
38
|
+
function benchPinoDeepObj (cb) {
|
39
|
+
for (var i = 0; i < max; i++) {
|
40
|
+
plog.info(deep)
|
41
|
+
}
|
42
|
+
setImmediate(cb)
|
43
|
+
},
|
44
|
+
function benchPinoDestDeepObj (cb) {
|
45
|
+
for (var i = 0; i < max; i++) {
|
46
|
+
plogDest.info(deep)
|
47
|
+
}
|
48
|
+
setImmediate(cb)
|
49
|
+
},
|
50
|
+
function benchPinoAsyncDeepObj (cb) {
|
51
|
+
for (var i = 0; i < max; i++) {
|
52
|
+
plogAsync.info(deep)
|
53
|
+
}
|
54
|
+
setImmediate(cb)
|
55
|
+
},
|
56
|
+
function benchPinoInterpolateDeep (cb) {
|
57
|
+
for (var i = 0; i < max; i++) {
|
58
|
+
plog.info('hello %j', deep)
|
59
|
+
}
|
60
|
+
setImmediate(cb)
|
61
|
+
},
|
62
|
+
function benchPinoDestInterpolateDeep (cb) {
|
63
|
+
for (var i = 0; i < max; i++) {
|
64
|
+
plogDest.info('hello %j', deep)
|
65
|
+
}
|
66
|
+
setImmediate(cb)
|
67
|
+
},
|
68
|
+
function benchPinoAsyncInterpolateDeep (cb) {
|
69
|
+
for (var i = 0; i < max; i++) {
|
70
|
+
plogAsync.info('hello %j', deep)
|
71
|
+
}
|
72
|
+
setImmediate(cb)
|
73
|
+
}
|
74
|
+
], 1000)
|
75
|
+
|
76
|
+
run(run)
|
@@ -0,0 +1,182 @@
|
|
1
|
+
'use strict'
|
2
|
+
|
3
|
+
const bench = require('fastbench')
|
4
|
+
const pino = require('../../')
|
5
|
+
const fs = require('node:fs')
|
6
|
+
const dest = fs.createWriteStream('/dev/null')
|
7
|
+
const plog = pino(dest)
|
8
|
+
delete require.cache[require.resolve('../../')]
|
9
|
+
const plogDest = require('../../')(pino.destination('/dev/null'))
|
10
|
+
delete require.cache[require.resolve('../../')]
|
11
|
+
const plogAsync = require('../../')(pino.destination({ dest: '/dev/null', sync: false }))
|
12
|
+
const plogChild = plog.child({ a: 'property' })
|
13
|
+
const plogDestChild = plogDest.child({ a: 'property' })
|
14
|
+
const plogAsyncChild = plogAsync.child({ a: 'property' })
|
15
|
+
const plogChildChild = plog.child({ a: 'property' }).child({ sub: 'child' })
|
16
|
+
const plogDestChildChild = plogDest.child({ a: 'property' }).child({ sub: 'child' })
|
17
|
+
const plogAsyncChildChild = plogAsync.child({ a: 'property' }).child({ sub: 'child' })
|
18
|
+
|
19
|
+
const max = 10
|
20
|
+
|
21
|
+
const run = bench([
|
22
|
+
function benchPino (cb) {
|
23
|
+
for (var i = 0; i < max; i++) {
|
24
|
+
plog.info('hello world')
|
25
|
+
}
|
26
|
+
setImmediate(cb)
|
27
|
+
},
|
28
|
+
function benchPinoDest (cb) {
|
29
|
+
for (var i = 0; i < max; i++) {
|
30
|
+
plogDest.info('hello world')
|
31
|
+
}
|
32
|
+
setImmediate(cb)
|
33
|
+
},
|
34
|
+
function benchPinoExtreme (cb) {
|
35
|
+
for (var i = 0; i < max; i++) {
|
36
|
+
plogAsync.info('hello world')
|
37
|
+
}
|
38
|
+
setImmediate(cb)
|
39
|
+
},
|
40
|
+
function benchPinoObj (cb) {
|
41
|
+
for (var i = 0; i < max; i++) {
|
42
|
+
plog.info({ hello: 'world' })
|
43
|
+
}
|
44
|
+
setImmediate(cb)
|
45
|
+
},
|
46
|
+
function benchPinoDestObj (cb) {
|
47
|
+
for (var i = 0; i < max; i++) {
|
48
|
+
plogDest.info({ hello: 'world' })
|
49
|
+
}
|
50
|
+
setImmediate(cb)
|
51
|
+
},
|
52
|
+
function benchPinoAsyncObj (cb) {
|
53
|
+
for (var i = 0; i < max; i++) {
|
54
|
+
plogAsync.info({ hello: 'world' })
|
55
|
+
}
|
56
|
+
setImmediate(cb)
|
57
|
+
},
|
58
|
+
function benchPinoChild (cb) {
|
59
|
+
for (var i = 0; i < max; i++) {
|
60
|
+
plogChild.info({ hello: 'world' })
|
61
|
+
}
|
62
|
+
setImmediate(cb)
|
63
|
+
},
|
64
|
+
function benchPinoDestChild (cb) {
|
65
|
+
for (var i = 0; i < max; i++) {
|
66
|
+
plogDestChild.info({ hello: 'world' })
|
67
|
+
}
|
68
|
+
setImmediate(cb)
|
69
|
+
},
|
70
|
+
function benchPinoAsyncChild (cb) {
|
71
|
+
for (var i = 0; i < max; i++) {
|
72
|
+
plogAsyncChild.info({ hello: 'world' })
|
73
|
+
}
|
74
|
+
setImmediate(cb)
|
75
|
+
},
|
76
|
+
function benchPinoChildChild (cb) {
|
77
|
+
for (var i = 0; i < max; i++) {
|
78
|
+
plogChildChild.info({ hello: 'world' })
|
79
|
+
}
|
80
|
+
setImmediate(cb)
|
81
|
+
},
|
82
|
+
function benchPinoDestChildChild (cb) {
|
83
|
+
for (var i = 0; i < max; i++) {
|
84
|
+
plogDestChildChild.info({ hello: 'world' })
|
85
|
+
}
|
86
|
+
setImmediate(cb)
|
87
|
+
},
|
88
|
+
function benchPinoAsyncChildChild (cb) {
|
89
|
+
for (var i = 0; i < max; i++) {
|
90
|
+
plogAsyncChildChild.info({ hello: 'world' })
|
91
|
+
}
|
92
|
+
setImmediate(cb)
|
93
|
+
},
|
94
|
+
function benchPinoChildCreation (cb) {
|
95
|
+
const child = plog.child({ a: 'property' })
|
96
|
+
for (var i = 0; i < max; i++) {
|
97
|
+
child.info({ hello: 'world' })
|
98
|
+
}
|
99
|
+
setImmediate(cb)
|
100
|
+
},
|
101
|
+
function benchPinoDestChildCreation (cb) {
|
102
|
+
const child = plogDest.child({ a: 'property' })
|
103
|
+
for (var i = 0; i < max; i++) {
|
104
|
+
child.info({ hello: 'world' })
|
105
|
+
}
|
106
|
+
setImmediate(cb)
|
107
|
+
},
|
108
|
+
function benchPinoMulti (cb) {
|
109
|
+
for (var i = 0; i < max; i++) {
|
110
|
+
plog.info('hello', 'world')
|
111
|
+
}
|
112
|
+
setImmediate(cb)
|
113
|
+
},
|
114
|
+
function benchPinoDestMulti (cb) {
|
115
|
+
for (var i = 0; i < max; i++) {
|
116
|
+
plogDest.info('hello', 'world')
|
117
|
+
}
|
118
|
+
setImmediate(cb)
|
119
|
+
},
|
120
|
+
function benchPinoAsyncMulti (cb) {
|
121
|
+
for (var i = 0; i < max; i++) {
|
122
|
+
plogAsync.info('hello', 'world')
|
123
|
+
}
|
124
|
+
setImmediate(cb)
|
125
|
+
},
|
126
|
+
function benchPinoInterpolate (cb) {
|
127
|
+
for (var i = 0; i < max; i++) {
|
128
|
+
plog.info('hello %s', 'world')
|
129
|
+
}
|
130
|
+
setImmediate(cb)
|
131
|
+
},
|
132
|
+
function benchPinoDestInterpolate (cb) {
|
133
|
+
for (var i = 0; i < max; i++) {
|
134
|
+
plogDest.info('hello %s', 'world')
|
135
|
+
}
|
136
|
+
setImmediate(cb)
|
137
|
+
},
|
138
|
+
function benchPinoDestInterpolate (cb) {
|
139
|
+
for (var i = 0; i < max; i++) {
|
140
|
+
plogDest.info('hello %s', 'world')
|
141
|
+
}
|
142
|
+
setImmediate(cb)
|
143
|
+
},
|
144
|
+
function benchPinoInterpolateAll (cb) {
|
145
|
+
for (var i = 0; i < max; i++) {
|
146
|
+
plog.info('hello %s %j %d', 'world', { obj: true }, 4)
|
147
|
+
}
|
148
|
+
setImmediate(cb)
|
149
|
+
},
|
150
|
+
function benchPinoDestInterpolateAll (cb) {
|
151
|
+
for (var i = 0; i < max; i++) {
|
152
|
+
plogDest.info('hello %s %j %d', 'world', { obj: true }, 4)
|
153
|
+
}
|
154
|
+
setImmediate(cb)
|
155
|
+
},
|
156
|
+
function benchPinoAsyncInterpolateAll (cb) {
|
157
|
+
for (var i = 0; i < max; i++) {
|
158
|
+
plogAsync.info('hello %s %j %d', 'world', { obj: true }, 4)
|
159
|
+
}
|
160
|
+
setImmediate(cb)
|
161
|
+
},
|
162
|
+
function benchPinoInterpolateExtra (cb) {
|
163
|
+
for (var i = 0; i < max; i++) {
|
164
|
+
plog.info('hello %s %j %d', 'world', { obj: true }, 4, { another: 'obj' })
|
165
|
+
}
|
166
|
+
setImmediate(cb)
|
167
|
+
},
|
168
|
+
function benchPinoDestInterpolateExtra (cb) {
|
169
|
+
for (var i = 0; i < max; i++) {
|
170
|
+
plogDest.info('hello %s %j %d', 'world', { obj: true }, 4, { another: 'obj' })
|
171
|
+
}
|
172
|
+
setImmediate(cb)
|
173
|
+
},
|
174
|
+
function benchPinoAsyncInterpolateExtra (cb) {
|
175
|
+
for (var i = 0; i < max; i++) {
|
176
|
+
plogAsync.info('hello %s %j %d', 'world', { obj: true }, 4, { another: 'obj' })
|
177
|
+
}
|
178
|
+
setImmediate(cb)
|
179
|
+
}
|
180
|
+
], 10000)
|
181
|
+
|
182
|
+
run(run)
|
@@ -0,0 +1,75 @@
|
|
1
|
+
'use strict'
|
2
|
+
|
3
|
+
const bench = require('fastbench')
|
4
|
+
const pino = require('../../')
|
5
|
+
|
6
|
+
const base = pino(pino.destination('/dev/null'))
|
7
|
+
const child = base.child({})
|
8
|
+
const childChild = child.child({})
|
9
|
+
const childChildChild = childChild.child({})
|
10
|
+
const childChildChildChild = childChildChild.child({})
|
11
|
+
const child2 = base.child({})
|
12
|
+
const baseSerializers = pino(pino.destination('/dev/null'))
|
13
|
+
const baseSerializersChild = baseSerializers.child({})
|
14
|
+
const baseSerializersChildSerializers = baseSerializers.child({})
|
15
|
+
|
16
|
+
const max = 100
|
17
|
+
|
18
|
+
const run = bench([
|
19
|
+
function benchPinoBase (cb) {
|
20
|
+
for (var i = 0; i < max; i++) {
|
21
|
+
base.info({ hello: 'world' })
|
22
|
+
}
|
23
|
+
setImmediate(cb)
|
24
|
+
},
|
25
|
+
function benchPinoChild (cb) {
|
26
|
+
for (var i = 0; i < max; i++) {
|
27
|
+
child.info({ hello: 'world' })
|
28
|
+
}
|
29
|
+
setImmediate(cb)
|
30
|
+
},
|
31
|
+
function benchPinoChildChild (cb) {
|
32
|
+
for (var i = 0; i < max; i++) {
|
33
|
+
childChild.info({ hello: 'world' })
|
34
|
+
}
|
35
|
+
setImmediate(cb)
|
36
|
+
},
|
37
|
+
function benchPinoChildChildChild (cb) {
|
38
|
+
for (var i = 0; i < max; i++) {
|
39
|
+
childChildChild.info({ hello: 'world' })
|
40
|
+
}
|
41
|
+
setImmediate(cb)
|
42
|
+
},
|
43
|
+
function benchPinoChildChildChildChild (cb) {
|
44
|
+
for (var i = 0; i < max; i++) {
|
45
|
+
childChildChildChild.info({ hello: 'world' })
|
46
|
+
}
|
47
|
+
setImmediate(cb)
|
48
|
+
},
|
49
|
+
function benchPinoChild2 (cb) {
|
50
|
+
for (var i = 0; i < max; i++) {
|
51
|
+
child2.info({ hello: 'world' })
|
52
|
+
}
|
53
|
+
setImmediate(cb)
|
54
|
+
},
|
55
|
+
function benchPinoBaseSerializers (cb) {
|
56
|
+
for (var i = 0; i < max; i++) {
|
57
|
+
baseSerializers.info({ hello: 'world' })
|
58
|
+
}
|
59
|
+
setImmediate(cb)
|
60
|
+
},
|
61
|
+
function benchPinoBaseSerializersChild (cb) {
|
62
|
+
for (var i = 0; i < max; i++) {
|
63
|
+
baseSerializersChild.info({ hello: 'world' })
|
64
|
+
}
|
65
|
+
setImmediate(cb)
|
66
|
+
},
|
67
|
+
function benchPinoBaseSerializersChildSerializers (cb) {
|
68
|
+
for (var i = 0; i < max; i++) {
|
69
|
+
baseSerializersChildSerializers.info({ hello: 'world' })
|
70
|
+
}
|
71
|
+
setImmediate(cb)
|
72
|
+
}
|
73
|
+
], 10000)
|
74
|
+
|
75
|
+
run(run)
|