Skip to content

Commit 7edaa34

Browse files
committed
fix: only use package identifier for extra name
1 parent 0e9b2eb commit 7edaa34

File tree

2 files changed

+42
-39
lines changed

2 files changed

+42
-39
lines changed

src/ecs/LogEcs.js

Lines changed: 39 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,13 @@ export class LogEcs extends Log {
2222
timestamp: 'iso'
2323
})
2424
this.serializers = { ...ecsSerializers, ...serializers }
25-
this.toJson = toJson
25+
const [extra] = name.split(':')
26+
this._extraName = extra
27+
this.toJson = this._toJson
2628
}
2729

2830
/* c8 ignore next 18 */
2931
_applySerializers (obj) {
30-
const name = this.name
3132
const ecsObj = {}
3233
for (const key in obj) {
3334
const value = obj[key]
@@ -39,48 +40,50 @@ export class LogEcs extends Log {
3940
this.serializers[key](value, ecsObj)
4041
} else {
4142
// add all other unknown fields to extra
42-
ecsObj.extra = ecsObj.extra || { [name]: {} }
43-
ecsObj.extra[name][key] = value
43+
const extra = this._extraName
44+
ecsObj.extra = ecsObj.extra || { [extra]: {} }
45+
ecsObj.extra[extra][key] = value
4446
}
4547
}
4648
}
4749
return ecsObj
4850
}
49-
}
50-
51-
LogEcs.serializers = ecsSerializers
5251

53-
function toJson (obj, serializers) {
54-
const { level, time, name, msg, pid, hostname, diff, ...other } = obj
52+
_toJson (obj, serializers) {
53+
const { level, time, name, msg, pid, hostname, diff, ...other } = obj
5554

56-
const ecsObj = {
57-
log: {
58-
level,
59-
logger: name,
60-
diff_ms: diff
61-
},
62-
message: msg,
63-
'@timestamp': time,
64-
process: pid ? { pid } : undefined,
65-
host: hostname ? { hostname } : undefined
66-
}
67-
68-
for (const key in other) {
69-
const value = other[key]
70-
if (
71-
value === undefined ||
72-
!Object.prototype.hasOwnProperty.call(other, key)
73-
) {
74-
continue
55+
const ecsObj = {
56+
log: {
57+
level,
58+
logger: name,
59+
diff_ms: diff
60+
},
61+
message: msg,
62+
'@timestamp': time,
63+
process: pid ? { pid } : undefined,
64+
host: hostname ? { hostname } : undefined
7565
}
76-
if (serializers[key]) {
77-
serializers[key](value, ecsObj)
78-
} else {
79-
// add all other unknown fields to extra
80-
ecsObj.extra = ecsObj.extra || { [name]: {} }
81-
ecsObj.extra[name][key] = value
66+
67+
for (const key in other) {
68+
const value = other[key]
69+
if (
70+
value === undefined ||
71+
!Object.prototype.hasOwnProperty.call(other, key)
72+
) {
73+
continue
74+
}
75+
if (serializers[key]) {
76+
serializers[key](value, ecsObj)
77+
} else {
78+
// add all other unknown fields to extra
79+
const extra = this._extraName
80+
ecsObj.extra = ecsObj.extra || { [extra]: {} }
81+
ecsObj.extra[extra][key] = value
82+
}
8283
}
83-
}
8484

85-
return stringify(ecsObj)
85+
return stringify(ecsObj)
86+
}
8687
}
88+
89+
LogEcs.serializers = ecsSerializers

types/ecs/LogEcs.d.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,12 @@ export class LogEcs extends Log {
1313
*/
1414
constructor(name: string, opts: LogOptions);
1515
serializers: any;
16-
toJson: typeof toJson;
16+
_extraName: string;
17+
toJson: (obj: any, serializers: any) => string;
1718
_applySerializers(obj: any): {
1819
extra: any;
1920
};
21+
_toJson(obj: any, serializers: any): string;
2022
}
2123
export namespace LogEcs {
2224
export { ecsSerializers as serializers };
@@ -26,6 +28,4 @@ export type LogOptions = import('../node.js').LogOptions & {
2628
serializers: Record<string, EcsSerializer>;
2729
};
2830
import { Log } from "../node.js";
29-
declare function toJson(obj: any, serializers: any): string;
3031
import { ecsSerializers } from "./serializers.js";
31-
export {};

0 commit comments

Comments
 (0)