将 javascript Winston 工厂 class 转换为 ES6
Converting javascript Winston factory class to ES6
我目前正致力于将 Javascript 中的 Winston Factory 转换为用 ES6 编写的 Typescript 文件。下面的示例给了我一个 Winston 记录器,我可以通过导入它并调用 log.info(); 在其他 类 中使用它可以给每个文件的记录器。
module.exports = lab =>
winston.createLogger({
level: "verbose",
transports: [new transports.Console({
format: combine(colorize(), label({
label: lab
}), timestamp(), ms(), logFormat),
}), ],
});
我想在我的 Typescript 应用程序中使用这种方法,但我很难让它与 ES6 导入语句一起使用。这是我到目前为止想到的,这种方法允许我将记录器导入另一个文件,但我无法访问记录器功能。
export = lab =>
winston.createLogger({
level: "verbose",
transports: [
new transports.Console({
format: combine(
colorize(),
label({ label: lab }),
timestamp(),
ms()
),
}),
],
});
任何输入、提示甚至是旧文件中代码结构的名称,以便我可以Google了解更多信息,我们将不胜感激。
编辑
我的问题:
我使用 "fileLocation" 中的导入日志来导入文件。
当我调用 log 时,我希望获得 winston logger 函数,但我得到了以下函数。
问题是您正在导出一个函数,所以您导入的 log
是函数 (lab) => ...
如果你这样做:
const myLog = log();
在 myLog
中您会找到 winston
创建的对象
我目前正致力于将 Javascript 中的 Winston Factory 转换为用 ES6 编写的 Typescript 文件。下面的示例给了我一个 Winston 记录器,我可以通过导入它并调用 log.info(); 在其他 类 中使用它可以给每个文件的记录器。
module.exports = lab =>
winston.createLogger({
level: "verbose",
transports: [new transports.Console({
format: combine(colorize(), label({
label: lab
}), timestamp(), ms(), logFormat),
}), ],
});
我想在我的 Typescript 应用程序中使用这种方法,但我很难让它与 ES6 导入语句一起使用。这是我到目前为止想到的,这种方法允许我将记录器导入另一个文件,但我无法访问记录器功能。
export = lab =>
winston.createLogger({
level: "verbose",
transports: [
new transports.Console({
format: combine(
colorize(),
label({ label: lab }),
timestamp(),
ms()
),
}),
],
});
任何输入、提示甚至是旧文件中代码结构的名称,以便我可以Google了解更多信息,我们将不胜感激。
编辑
我的问题: 我使用 "fileLocation" 中的导入日志来导入文件。 当我调用 log 时,我希望获得 winston logger 函数,但我得到了以下函数。
问题是您正在导出一个函数,所以您导入的 log
是函数 (lab) => ...
如果你这样做:
const myLog = log();
在 myLog
中您会找到 winston