Я пытаюсь создать собственный форматировщик json для Winston v3.
Вот единственный файл с демонстрацией:
const { createLogger, format, transports } = require("winston")
const { combine, timestamp, prettyPrint } = format
const logger = createLogger({
format: combine(timestamp(), prettyPrint())
})
logger.add(new transports.Console())
logger.info("test message", { data: { a: 1, b: [1, 2, 3, 4], d: new Date() } })
try {
throw new Error("I'm an error!")
} catch (err) {
logger.error(err)
}
Он печатает:
{ data: { a: 1, b: [ 1, 2, 3, 4 ], d: 2018-07-21T08:59:27.958Z },
level: 'info',
message: 'test message',
timestamp: '2018-07-21T08:59:27.959Z',
[Symbol(level)]: 'info',
[Symbol(splat)]:
[ { data: { a: 1, b: [ 1, 2, 3, 4 ], d: 2018-07-21T08:59:27.958Z } } ] }
{ Error: I'm an error!
at Object.<anonymous> (/Users/max7z/projects/test/t32__test__winston__pretty-print_symbol/index.js:13:9)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
at startup (internal/bootstrap/node.js:266:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:596:3)
level: 'error',
timestamp: '2018-07-21T08:59:27.962Z',
[Symbol(level)]: 'error' }
Я бы хотел получить почти такой же результат, но без некоторых полей: [Символ (уровень)], [Символ (знак)].
Можно ли удалить поля [Symbol] из prettyPrint
форматтера?
Или как я могу создать свой собственный форматировщик json с трассировкой стека ошибок, как у prettyPrint?