Skip to content

Commit f457a72

Browse files
committed
feat(logs@3.1): allow json field names to be customized
1 parent 71532a2 commit f457a72

File tree

5 files changed

+24
-7
lines changed

5 files changed

+24
-7
lines changed

logs/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ const { Console } = require('@hackbg/logs')
1414
const console = new Console("label", {
1515
color: true, // or false
1616
json: true, // or false
17+
jsonLevelField: 'level', // default: "logMethod"
18+
jsonMetaField: 'meta', // default: "logTag"
19+
jsonDataField: 'data', // default: "logMessage"
1720
})
1821
console("asdf")
1922
console.log("asdf")

logs/logs.cjs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,19 @@ const Console = module.exports.Console = class Console extends defineCallable(fu
2020
this.label = options.label ?? label ?? ''
2121
this.parent = options.parent ?? console
2222
this._print = options.json
23-
? (method, tag, message) => {
24-
this.parent[method](toJSON({ logTag: tag, logMethod: method, logMessage: message }))
23+
? (level, meta, data) => {
24+
this.parent[level](toJSON({
25+
[options.jsonLevelField || 'logMethod']: level,
26+
[options.jsonMetaField || 'logTag']: meta,
27+
[options.jsonDataField || 'logMessage']: data,
28+
}))
2529
return this
2630
}
2731
: (method, tag, ...args) => {
2832
this.parent[method](tag, ...args)
2933
return this
3034
}
31-
this._tag = (!options.noColor || options.color)
35+
this._tag = (options.color && !options.json)
3236
? (color, string) => {
3337
const tag1 = (string ? (chalk.inverse(color(bold(string))) + (this.label ? ' ' : '')) : '')
3438
const tag2 = (this.label ? color(this.label) : '')

logs/logs.mjs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,12 @@ export class Console extends defineCallable(function log(...args){
2626
this.label = options.label ?? label ?? this.label ?? ''
2727
this.parent = options.parent ?? console
2828
this._print = options.json
29-
? (method, tag, message) => {
30-
this.parent[method](toJSON({ logTag: tag, logMethod: method, logMessage: message }))
29+
? (level, meta, data) => {
30+
this.parent[level](toJSON({
31+
[options.jsonLevelField || 'logMethod']: level,
32+
[options.jsonMetaField || 'logTag']: meta,
33+
[options.jsonDataField || 'logMessage']: data,
34+
}))
3135
return this
3236
}
3337
: (method, tag, ...args) => {

logs/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@hackbg/logs",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"main": "./logs.mjs",
55
"types": "./logs.d.ts",
66
"type": "module",

logs/test.cjs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,13 @@
55
for (const color of [true, false]) {
66
for (const json of [true, false]) {
77
console.log('\nTesting with', { variant, color, json })
8-
const logger = new Console("Testing!", { color, json })
8+
const logger = new Console("Testing!", {
9+
color,
10+
json,
11+
jsonLevelField: 'level',
12+
jsonMetaField: 'meta',
13+
jsonDataField: 'data',
14+
})
915
for (const method of ['log', 'info', 'warn', 'error', 'debug', 'trace']) {
1016
logger[method]("hello")
1117
logger[method]({ json: "object", bigint: 100n })

0 commit comments

Comments
 (0)