【发布时间】:2022-02-02 19:08:52
【问题描述】:
我对logger模块winston做了优化,不知道怎么添加新的loglevel
也许你想知道我需要它做什么。我需要这个用于数据库查询的 API。
我的记录器的一个例子是:
logger.info('I am a Log');
20220202.163730-[m295] info: POST /v1/authenticate 401 45- 423.099 ms
并希望使用名为“front”的自定义日志级别进行日志记录
例如:
logger.front('I am a Log');
20220202.163730-[m295] front: POST /v1/authenticate 401 45- 423.099ms
模块代码:
const { createLogger, format, transports } = require('winston');
const env = process.env.NODE_ENV || 'development';
const defaultFormat = format.combine(
format.splat(),
format.label({ label: '[m295]' }),
format.timestamp({ format: 'YYYYMMDD.HHmmss' }),
format.printf((info) => {
if (info instanceof Error) {
info.message = info.stack;
}
if (typeof info.message === 'object') {
info.message = JSON.stringify(info.message, null, 2);
}
return `${info.timestamp} - ${info.label} ${info.level}: ${info.message}`;
}),
);
const logger = createLogger({
level: 'info',
format: format.combine(
format.splat(),
format.label({ label: '[m295]' }),
format.timestamp({ format: 'YYYYMMDD.HHmmss' }),
format.printf(
(info) =>
`${info.timestamp} - ${info.label} ${info.level}: ${info.message}`,
),
),
transports: [
new transports.File({ filename: './logs/error.log', level: 'error' }),
new transports.File({ filename: './logs/server.log' }),
new transports.File({ filename: './logs/front.log', level: 'front' }),
],
exceptionHandlers: [
new transports.File({
filename: './logs/exceptions.log',
timestamp: true,
maxsize: 1000000,
}),
],
});
logger.stream = {
write: function (message, encoding) {
logger.info(message.replace(/\n$/, ''));
},
};
if (env !== 'development') {
logger.add(
new transports.Console({
format: format.combine(
format.colorize(),
format.splat(),
format.label({ label: 'm295' }),
format.timestamp({ format: 'YYYYMMDD.HHmmss' }),
format.printf(
(info) =>
`${[info.timestamp]} - ${info.level}: ${info.message} [${
info.label
}]`,
),
),
}),
);
}
module.exports = logger;
用代码:
const logger = require('../utils/logger');
logger.info('I am a log'); //or
logger.log('info','I am a log');
我可以写日志吗
我想用这样的日志级别前面制作一个日志:
const logger = require('../utils/logger');
logger.front('I am a log'); //or
logger.log('front','I am a log');
``
Can somebody help me? thanks
【问题讨论】:
标签: javascript logging winston