我有以下 Logger 模块:
const { createLogger, format, transports } = require('winston');
const { combine, timestamp, label, printf, colorize } = format;
const logger = require('winston');
const { red } = require('colors')
const myFormat = printf(info => {
return `${info.timestamp} [${info.label}] ${info.level}:
${info.message}`;
});
module.exports = logger.createLogger({
level: 'silly',
format: combine(
label({ label: 'mylogger1' }),
timestamp(),
myFormat,
//logger.format.json(),
),
transports: [
new logger.transports.File({ filename: 'error.log', level: 'error' }),
new logger.transports.Console({
format: combine(
myFormat
)}
)
]
});
然后我在另一个文件中使用它:
const myLogger = require('./loggermodule');
myLogger.log("verbose","an error occurred in this file: " +
module.filename);
正如您所看到的,我正在使用module.filename来记录发生日志的文件的名称 .
我想知道是否有更好的方法来实现相同的结果
1 回答
通常,当抛出错误时,在堆栈跟踪中指定文件名:
但是如果你需要自己指定文件名,你可以创建一个包装函数,如:
然后: