33 lines
979 B
JavaScript
33 lines
979 B
JavaScript
/* eslint no-undefined: 0 */
|
|
'use strict';
|
|
|
|
const format = require('./format');
|
|
const { MESSAGE } = require('triple-beam');
|
|
const jsonStringify = require('safe-stable-stringify');
|
|
|
|
/*
|
|
* function simple (info)
|
|
* Returns a new instance of the simple format TransformStream
|
|
* which writes a simple representation of logs.
|
|
*
|
|
* const { level, message, splat, ...rest } = info;
|
|
*
|
|
* ${level}: ${message} if rest is empty
|
|
* ${level}: ${message} ${JSON.stringify(rest)} otherwise
|
|
*/
|
|
module.exports = format(info => {
|
|
const stringifiedRest = jsonStringify(Object.assign({}, info, {
|
|
level: undefined,
|
|
message: undefined,
|
|
splat: undefined
|
|
}));
|
|
|
|
const padding = info.padding && info.padding[info.level] || '';
|
|
if (stringifiedRest !== '{}') {
|
|
info[MESSAGE] = `${info.level}:${padding} ${info.message} ${stringifiedRest}`;
|
|
} else {
|
|
info[MESSAGE] = `${info.level}:${padding} ${info.message}`;
|
|
}
|
|
|
|
return info;
|
|
});
|