可以让 Winston 包含创建该条目的记录器吗?
Possible to have Winston to include which logger that created the entry?
下面的 PoC 输出
{"clock":"aaaa","id":"bbb","state":"ccc","level":"info","message":"Down","timestamp":"2021-02-04 15:25:25"}
但它不包括写入该条目的记录器。 IE。在本例中是 monitorLogger.info()
。 info
部分在 level
标记中表示,但该条目未提及 monitorLogger
.
问题
是否可以winston
包含创建条目的记录器的标签?
check.js
const {monitorLogger} = require('./logger');
monitorLogger.info('Down', {
clock: 'aaaa',
id: 'bbb',
state: 'ccc'
});
logger.js
const { createLogger, format, transports, config } = require('winston');
const monitor = createLogger({
transports: [
new transports.Console()
],
format: format.combine(
format.timestamp({
format: 'YYYY-MM-DD HH:mm:ss'
}),
format.json(),
),
exceptionHandlers: [
new transports.Console()
]
});
module.exports = {
monitorLogger: monitor
};
在createlogger下,我们可以添加如下标签吗
const { createLogger, format, transports, config } = require('winston');
const { combine, timestamp, label, json } = format; // <---- additional import
const monitor = createLogger({
transports: [
new transports.Console()
],
format: format.combine(
format.timestamp({
format: 'YYYY-MM-DD HH:mm:ss'
}),
format.json(),
label({ label: 'monitor' })
),
exceptionHandlers: [
new transports.Console()
]
});
module.exports = {
monitorLogger: monitor
};
Sample output would be
{"clock":"aaaa","id":"bbb","state":"ccc","level":"info","message":"Down","label":"monitor","timestamp":"2021-02-04 15:25:25"}
const { createLogger, format, transports, config } = require('winston');
const { combine, timestamp, label, json } = format;
const monitor = createLogger({
transports: [
new transports.Console()
],
format: combine(
format.timestamp({
format: 'YYYY-MM-DD HH:mm:ss'
}),
label({ label: 'monitor' }),
timestamp(),
json(),
),
exceptionHandlers: [
new transports.Console()
]
});
module.exports = {
monitorLogger: monitor
};
给予
{"clock":"aaaa","id":"bbb","state":"ccc","level":"info","message":"Down","timestamp":"2021-02-04 21:32:54","label":"monitor"}
下面的 PoC 输出
{"clock":"aaaa","id":"bbb","state":"ccc","level":"info","message":"Down","timestamp":"2021-02-04 15:25:25"}
但它不包括写入该条目的记录器。 IE。在本例中是 monitorLogger.info()
。 info
部分在 level
标记中表示,但该条目未提及 monitorLogger
.
问题
是否可以winston
包含创建条目的记录器的标签?
check.js
const {monitorLogger} = require('./logger');
monitorLogger.info('Down', {
clock: 'aaaa',
id: 'bbb',
state: 'ccc'
});
logger.js
const { createLogger, format, transports, config } = require('winston');
const monitor = createLogger({
transports: [
new transports.Console()
],
format: format.combine(
format.timestamp({
format: 'YYYY-MM-DD HH:mm:ss'
}),
format.json(),
),
exceptionHandlers: [
new transports.Console()
]
});
module.exports = {
monitorLogger: monitor
};
在createlogger下,我们可以添加如下标签吗
const { createLogger, format, transports, config } = require('winston');
const { combine, timestamp, label, json } = format; // <---- additional import
const monitor = createLogger({
transports: [
new transports.Console()
],
format: format.combine(
format.timestamp({
format: 'YYYY-MM-DD HH:mm:ss'
}),
format.json(),
label({ label: 'monitor' })
),
exceptionHandlers: [
new transports.Console()
]
});
module.exports = {
monitorLogger: monitor
};
Sample output would be
{"clock":"aaaa","id":"bbb","state":"ccc","level":"info","message":"Down","label":"monitor","timestamp":"2021-02-04 15:25:25"}
const { createLogger, format, transports, config } = require('winston');
const { combine, timestamp, label, json } = format;
const monitor = createLogger({
transports: [
new transports.Console()
],
format: combine(
format.timestamp({
format: 'YYYY-MM-DD HH:mm:ss'
}),
label({ label: 'monitor' }),
timestamp(),
json(),
),
exceptionHandlers: [
new transports.Console()
]
});
module.exports = {
monitorLogger: monitor
};
给予
{"clock":"aaaa","id":"bbb","state":"ccc","level":"info","message":"Down","timestamp":"2021-02-04 21:32:54","label":"monitor"}